23 using namespace edm::shared_memory;
24 using namespace boost::interprocess;
36 maxWaitInSeconds_{iMaxWaitInSeconds},
37 smName_{uniqueName(iName)},
38 managed_sm_{open_or_create, smName_.c_str(), 1024},
78 iBase += std::to_string(pid);
80 iBase += std::to_string(
id_);
92 using namespace boost::posix_time;
96 not workerStatus.workerFinished()) {
105 using namespace boost::posix_time;
109 not workerStatus.workerFinished()) {
118 using namespace boost::posix_time;
123 not workerStatus.workerFinished()) {
constexpr char const *const kConditionToMain
boost::interprocess::named_condition cndToMain_
bool wait(boost::interprocess::scoped_lock< boost::interprocess::named_mutex > &lock, edm::Transition iTrans, unsigned long long iTransID)
constexpr char const *const kConditionFromMain
constexpr char const *const kStop
edm::Transition * transitionType_
constexpr char const *const kTransitionType
unsigned long long * transitionID_
constexpr char const *const kMutex
constexpr char const *const kKeepEvent
uint16_t mem[nChs][nEvts]
unsigned int maxWaitInSeconds_
CheckWorkerStatus initCheckWorkerStatus(unsigned long long *iPtr) const noexcept
boost::interprocess::named_condition cndFromMain_
constexpr char const *const kFromWorkerBufferInfo
ControllerChannel(std::string const &iName, int iID, unsigned int iMaxWaitInSeconds)
constexpr char const *const kTransitionID
constexpr char const *const kToWorkerBufferInfo
boost::interprocess::managed_shared_memory managed_sm_
std::string uniqueName(std::string iBase) const
bool continueWait(boost::interprocess::scoped_lock< boost::interprocess::named_mutex > &lock)
static BufferInfo * bufferInfo(const char *iWhich, boost::interprocess::managed_shared_memory &mem)