| 637 | |
| 638 | template<typename TDatum, typename TDatums, typename TDatumsSP, typename TWorker> |
| 639 | bool WrapperT<TDatum, TDatums, TDatumsSP, TWorker>::tryPop(TDatumsSP& tDatums) |
| 640 | { |
| 641 | try |
| 642 | { |
| 643 | if (!mUserWs[int(WorkerType::Output)].empty()) |
| 644 | error("Pop cannot be called if an output worker was already selected.", |
| 645 | __LINE__, __FUNCTION__, __FILE__); |
| 646 | return mThreadManager.tryPop(tDatums); |
| 647 | } |
| 648 | catch (const std::exception& e) |
| 649 | { |
| 650 | error(e.what(), __LINE__, __FUNCTION__, __FILE__); |
| 651 | return false; |
| 652 | } |
| 653 | } |
| 654 | |
| 655 | template<typename TDatum, typename TDatums, typename TDatumsSP, typename TWorker> |
| 656 | bool WrapperT<TDatum, TDatums, TDatumsSP, TWorker>::waitAndPop(TDatumsSP& tDatums) |