1 #ifndef OPENPOSE_PRODUCER_W_DATUM_PRODUCER_HPP
2 #define OPENPOSE_PRODUCER_W_DATUM_PRODUCER_HPP
12 template<
typename TDatums,
typename TDatumsNoPtr>
25 std::shared_ptr<DatumProducer<TDatumsNoPtr>> spDatumProducer;
26 std::queue<TDatums> mQueuedElements;
40 template<
typename TDatums,
typename TDatumsNoPtr>
42 spDatumProducer{datumProducer}
46 template<
typename TDatums,
typename TDatumsNoPtr>
52 template<
typename TDatums,
typename TDatumsNoPtr>
57 template<
typename TDatums,
typename TDatumsNoPtr>
67 std::shared_ptr<TDatumsNoPtr> tDatums;
69 if (mQueuedElements.empty())
72 std::tie(isRunning, tDatums) = spDatumProducer->checkIfRunningAndGetDatum();
84 if (tDatums !=
nullptr && tDatums->size() > 1)
87 for (
auto i = 0u ; i < tDatums->size() ; i++)
89 auto& tDatum = (*tDatums)[i];
91 tDatum.subIdMax = tDatums->size()-1;
92 mQueuedElements.emplace(
93 std::make_shared<TDatumsNoPtr>(TDatumsNoPtr{tDatum}));
97 if (!mQueuedElements.empty())
99 tDatums = mQueuedElements.front();
100 mQueuedElements.pop();
105 catch (
const std::exception& e)
108 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
116 #endif // OPENPOSE_PRODUCER_W_DATUM_PRODUCER_HPP
virtual ~WDatumProducer()
Definition: wDatumProducer.hpp:47
void initializationOnThread()
Definition: wDatumProducer.hpp:53
static const std::string timerInit(const int line, const std::string &function, const std::string &file)
OP_API void error(const std::string &message, const int line=-1, const std::string &function="", const std::string &file="")
WDatumProducer(const std::shared_ptr< DatumProducer< TDatumsNoPtr >> &datumProducer)
Definition: wDatumProducer.hpp:41
Definition: workerProducer.hpp:10
void dLog(const T &message, const Priority priority=Priority::Max, const int line=-1, const std::string &function="", const std::string &file="")
Definition: errorAndLog.hpp:53
Definition: datumProducer.hpp:15
static void printAveragedTimeMsOnIterationX(const std::string &key, const int line, const std::string &function, const std::string &file, const unsigned long long x=DEFAULT_X)
static void timerEnd(const std::string &key)
Definition: wDatumProducer.hpp:13
TDatums workProducer()
Definition: wDatumProducer.hpp:58