16 const std::vector<std::string>& parameterIds) :
19 for (
const auto&
id : parameterIds)
21 tokenHasArrivedMap[
id] =
false;
23 ARMARX_WARNING <<
"Fluxio Merger is waiting for the following tokens to arrive: "
39 std::this_thread::sleep_for(std::chrono::milliseconds(250));
42 bool allTokensArrived =
true;
43 for (
const auto& [
id, hasArrived] : tokenHasArrivedMap)
47 allTokensArrived =
false;
76 std::unique_lock l(tokenHasArrivedMapMutex);
77 const auto it = tokenHasArrivedMap.find(parameterId);
79 if (it == tokenHasArrivedMap.end())
85 ARMARX_WARNING <<
"Fluxio Merger received token for parameterId: " << parameterId;
86 tokenHasArrivedMap[parameterId] =
true;
92 std::optional<std::vector<skills::FluxioSkillStatusUpdate>>
FluxioExecutor(const FluxioExecutor &)=delete
std::optional< skills::FluxioSkillStatusUpdate > status
std::optional< std::string > executorName
virtual void setStatus(skills::SkillStatus status, const std::string &nodeId="noId")
void run(std::string executorName, armarx::aron::data::DictPtr parameters, std::experimental::observer_ptr< const FluxioProfile > profilePtr) override
std::optional< std::vector< skills::FluxioSkillStatusUpdate > > getStatusUpdate() override
void checkInToken(const std::string ¶meterId)
FluxioMergerExecutor(const std::string &id, const std::vector< std::string > ¶meterIds)
#define ARMARX_WARNING
The logging level for unexpected behaviour, but not a serious problem.
std::shared_ptr< Dict > DictPtr
This file is part of ArmarX.