All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
worker.hpp
Go to the documentation of this file.
#ifndef OPENPOSE_THREAD_WORKER_HPP
#define OPENPOSE_THREAD_WORKER_HPP
#include <openpose/core/common.hpp>
namespace op
{
template<typename TDatums>
class Worker
{
public:
Worker();
virtual ~Worker();
virtual void initializationOnThread() = 0;
bool checkAndWork(TDatums& tDatums);
inline bool isRunning() const
{
return mIsRunning;
}
inline void stop()
{
mIsRunning = false;
}
// Virtual in case some function needs spetial stopping (e.g., buffers might not stop inmediately and need a
// few iterations)
inline virtual void tryStop()
{
stop();
}
protected:
virtual void work(TDatums& tDatums) = 0;
private:
bool mIsRunning;
DELETE_COPY(Worker);
};
}
// Implementation
namespace op
{
template<typename TDatums>
Worker<TDatums>::Worker() :
mIsRunning{true}
{
}
template<typename TDatums>
Worker<TDatums>::~Worker()
{
}
template<typename TDatums>
bool Worker<TDatums>::checkAndWork(TDatums& tDatums)
{
if (mIsRunning)
work(tDatums);
return mIsRunning;
}
COMPILE_TEMPLATE_DATUM(Worker);
}
#endif // OPENPOSE_THREAD_WORKER_HPP
op::Worker
Definition: worker.hpp:9
op::Worker::~Worker
virtual ~Worker()
Definition: worker.hpp:61
common.hpp
op::Worker::Worker
Worker()
Definition: worker.hpp:55
op::Worker::tryStop
virtual void tryStop()
Definition: worker.hpp:32
op::Worker::isRunning
bool isRunning() const
Definition: worker.hpp:20
op::Worker::initializationOnThread
virtual void initializationOnThread()=0
op::Worker::work
virtual void work(TDatums &tDatums)=0
op::COMPILE_TEMPLATE_DATUM
COMPILE_TEMPLATE_DATUM(WPoseTriangulation)
op::Worker::checkAndWork
bool checkAndWork(TDatums &tDatums)
Definition: worker.hpp:66
op::Worker::stop
void stop()
Definition: worker.hpp:25