1 #ifndef OPENPOSE_THREAD_W_QUEUE_ASSEMBLER_HPP
2 #define OPENPOSE_THREAD_W_QUEUE_ASSEMBLER_HPP
16 template<
typename TDatums,
typename TDatumsNoPtr>
26 void work(TDatums& tDatums);
42 template<
typename TDatums,
typename TDatumsNoPtr>
47 template<
typename TDatums,
typename TDatumsNoPtr>
52 template<
typename TDatums,
typename TDatumsNoPtr>
57 template<
typename TDatums,
typename TDatumsNoPtr>
68 if (tDatums->size() > 1)
69 error(
"This function assumes that WQueueSplitter (inside WDatumProducer)"
70 " was applied in the first place, i.e., that there is only 1 element"
71 " per TDatums (size = " + std::to_string(tDatums->size()) +
").",
72 __LINE__, __FUNCTION__, __FILE__);
73 auto tDatum = (*tDatums)[0];
75 if (tDatum.subIdMax == 0)
78 if (mNextTDatums ==
nullptr)
79 mNextTDatums = std::make_shared<TDatumsNoPtr>();
81 mNextTDatums->emplace_back(tDatum);
83 if (mNextTDatums->back().subId == mNextTDatums->back().subIdMax)
85 tDatums = mNextTDatums;
86 mNextTDatums =
nullptr;
99 std::this_thread::sleep_for(std::chrono::milliseconds{1});
101 catch (
const std::exception& e)
105 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
112 #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="")
virtual ~WQueueAssembler()
Definition: wQueueAssembler.hpp:48
void work(TDatums &tDatums)
Definition: wQueueAssembler.hpp:58
WQueueAssembler()
Definition: wQueueAssembler.hpp:43
void initializationOnThread()
Definition: wQueueAssembler.hpp:53
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)