1 #ifndef OPENPOSE_THREAD_W_QUEUE_ASSEMBLER_HPP
2 #define OPENPOSE_THREAD_W_QUEUE_ASSEMBLER_HPP
16 template<
typename TDatums,
typename TDatumsNoPtr>
24 void work(TDatums& tDatums);
42 template<
typename TDatums,
typename TDatumsNoPtr>
47 template<
typename TDatums,
typename TDatumsNoPtr>
52 template<
typename TDatums,
typename TDatumsNoPtr>
63 if (tDatums->size() > 1)
64 error(
"This function assumes that WQueueSplitter (inside WDatumProducer)"
65 " was applied in the first place, i.e., that there is only 1 element"
66 " per TDatums (size = " + std::to_string(tDatums->size()) +
").",
67 __LINE__, __FUNCTION__, __FILE__);
68 auto tDatum = (*tDatums)[0];
70 if (tDatum.subIdMax == 0)
73 if (mNextTDatums ==
nullptr)
74 mNextTDatums = std::make_shared<TDatumsNoPtr>();
76 mNextTDatums->emplace_back(tDatum);
78 if (mNextTDatums->back().subId == mNextTDatums->back().subIdMax)
80 tDatums = mNextTDatums;
81 mNextTDatums =
nullptr;
94 std::this_thread::sleep_for(std::chrono::milliseconds{1});
96 catch (
const std::exception& e)
100 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
107 #endif // OPENPOSE_THREAD_W_QUEUE_ASSEMBLER_HPP
Definition: wQueueAssembler.hpp:17
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="")
void work(TDatums &tDatums)
Definition: wQueueAssembler.hpp:53
WQueueAssembler()
Definition: wQueueAssembler.hpp:43
void initializationOnThread()
Definition: wQueueAssembler.hpp:48
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
bool checkNoNullNorEmpty(const TPointerContainer &tPointerContainer)
Definition: pointerContainer.hpp:7
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)