8#include <boost/uuid/uuid_io.hpp>
10#include <Ice/Exception.h>
11#include <Ice/OutputStream.h>
12#include <IceUtil/Exception.h>
13#include <IceUtil/Optional.h>
15#include <nlohmann/json.hpp>
20#include <ArmarXCore/interface/core/time.h>
29#include <RobotAPI/interface/aron/Aron.h>
30#include <RobotAPI/interface/skills/SkillManagerInterface.h>
32#include <RobotAPI/libraries/skills/core/aron/FluxioProfile.aron.generated.h>
33#include <RobotAPI/libraries/skills/core/aron/FluxioSkill.aron.generated.h>
47 this->plugin->addProvider(i);
48 std::string providerId = boost::uuids::to_string(
49 armarx::plugins::SkillManagerComponentPlugin::createUuidWithString(
50 info.providerId.providerName));
51 std::optional<std::vector<skills::manager::arondto::FluxioSkill>> opt =
56 ARMARX_ERROR <<
"Failed to load composite skills for provider "
57 << info.providerId.providerName;
61 for ([[maybe_unused]]
const auto& skill : opt.value())
69 const skills::manager::dto::ProviderID& provider,
73 this->plugin->removeProvider(i);
76 skills::manager::dto::SkillStatusUpdate
78 const skills::manager::dto::SkillExecutionRequest& info,
82 return this->plugin->executeSkill(e).toManagerIce();
85 skills::manager::dto::SkillExecutionID
87 const skills::manager::dto::SkillExecutionRequest& info,
88 const Ice::Current& current)
91 return this->plugin->executeSkillAsync(e).toManagerIce();
94 skills::provider::dto::ParameterUpdateResult
96 const skills::manager::dto::SkillExecutionID& info,
98 const Ice::Current& current)
100 skills::provider::dto::ParameterUpdateResult ret;
103 ret.success = this->plugin->updateSkillParameters(e, a);
107 skills::provider::dto::AbortSkillResult
109 const Ice::Current& current)
111 skills::provider::dto::AbortSkillResult ret;
113 ret.success = this->plugin->abortSkill(i);
117 skills::provider::dto::AbortSkillResult
119 const skills::manager::dto::SkillExecutionID&
id,
120 const Ice::Current& )
122 skills::provider::dto::AbortSkillResult ret;
124 ret.success = this->plugin->abortSkillAsync(i);
128 std::vector<skills::provider::dto::AbortSkillResult>
133 std::vector<skills::provider::dto::AbortSkillResult> results;
135 skills::manager::dto::SkillStatusUpdateMap executions;
153 for (
auto& [executionId,
status] : executions)
155 if (
status.status != armarx::skills::core::dto::Execution::Succeeded and
156 status.status != armarx::skills::core::dto::Execution::Aborted and
157 status.status != armarx::skills::core::dto::Execution::Failed)
163 for (
auto& [executionId,
status] : executions)
166 if (
status.status != armarx::skills::core::dto::Execution::Succeeded and
167 status.status != armarx::skills::core::dto::Execution::Aborted and
168 status.status != armarx::skills::core::dto::Execution::Failed)
171 results.push_back(this->
abortSkill(executionId, current));
177 std::vector<skills::provider::dto::AbortSkillResult>
181 std::vector<skills::provider::dto::AbortSkillResult> results;
183 skills::manager::dto::SkillStatusUpdateMap executions;
198 for (
auto& [executionId,
status] : executions)
201 if (
status.status != armarx::skills::core::dto::Execution::Aborted and
202 status.status != armarx::skills::core::dto::Execution::Failed)
213 const skills::provider::dto::SkillStatusUpdate& statusUpdate,
214 const skills::callback::dto::ProviderID& pid,
222 skills::manager::dto::SkillDescriptionMap
225 skills::manager::dto::SkillDescriptionMap ret;
227 auto m = this->plugin->getSkillDescriptions();
229 for (
const auto& [k, v] : m)
231 ret.insert({k.toManagerIce(), v.toManagerIce()});
237 IceUtil::Optional<skills::manager::dto::SkillDescription>
239 const Ice::Current& current)
242 auto o = this->plugin->getSkillDescription(e);
245 return o->toManagerIce();
250 IceUtil::Optional<skills::manager::dto::SkillStatusUpdate>
252 const skills::manager::dto::SkillExecutionID& executionId,
253 const Ice::Current& current)
256 auto o = this->plugin->getSkillExecutionStatus(e);
259 return o->toManagerIce();
264 skills::manager::dto::SkillStatusUpdateMap
267 skills::manager::dto::SkillStatusUpdateMap ret;
269 auto m = this->plugin->getSkillExecutionStatuses();
271 for (
const auto& [k, v] : m)
273 ret.insert({k.toManagerIce(), v.toManagerIce()});
283 aron::type::dto::AronObjectPtr
286 const auto& res = this->plugin->getTypes();
287 return res->toAronObjectDTO();
290 IceUtil::Optional<std::string>
292 const std::string& profileId,
293 const Ice::Current& current)
295 const auto& res = this->plugin->executeFluxioSkill(skillId, profileId,
"Fluxio");
296 if (!res.isSuccess())
298 auto e = res.getError();
299 e.addToContext(std::nullopt,
"SkillManagerComponentPluginUser", __FUNCTION__, __LINE__);
300 throw e.toManagerIce();
302 if (res.getResult() ==
nullptr)
304 auto e = res.getError();
305 e.addToContext(std::nullopt,
"SkillManagerComponentPluginUser", __FUNCTION__, __LINE__);
306 throw e.toManagerIce();
309 return res.getResult()->id;
312 IceUtil::Optional<std::string>
314 const std::string& executionArgs,
317 const auto delimiterPos = skillId.find(
'/');
318 const auto providerName = skillId.substr(0, delimiterPos);
319 const auto skillName = skillId.substr(delimiterPos + 1);
322 const auto& providerId =
323 armarx::plugins::SkillManagerComponentPlugin::createUuidWithString(providerName);
325 const auto&
id = armarx::plugins::SkillManagerComponentPlugin::createUuidWithString(
326 skillName, providerId);
328 const auto& idStr = boost::uuids::to_string(
id);
330 nlohmann::json json = nlohmann::json::parse(executionArgs);
337 for (
const auto& key : aronData->getAllKeys())
339 const auto& seed = key +
"isInput";
340 const auto& keyUuid = boost::uuids::to_string(
341 armarx::plugins::SkillManagerComponentPlugin::createUuidWithString(seed,
id));
342 const auto& value = aronData->getElement(key);
343 if (value ==
nullptr)
347 updatedAronData->addElement(keyUuid, value->cloneAsVariant());
351 this->plugin->executeFluxioSkill(idStr,
"root",
"Fluxio", updatedAronData);
353 if (!res.isSuccess())
355 auto e = res.getError();
356 e.addToContext(std::nullopt,
"SkillManagerComponentPluginUser", __FUNCTION__, __LINE__);
357 throw e.toManagerIce();
359 if (res.getResult() ==
nullptr)
361 auto e = res.getError();
362 e.addToContext(std::nullopt,
"SkillManagerComponentPluginUser", __FUNCTION__, __LINE__);
363 throw e.toManagerIce();
366 return res.getResult()->id;
371 const Ice::Current& current)
373 this->plugin->abortFluxioSkill(executionId);
376 IceUtil::Optional<skills::manager::dto::FluxioSkillStatusUpdateList>
378 const Ice::Current& current)
380 auto l = this->plugin->getFluxioSkillExecutionStatus(executionId);
385 auto e = l.getError();
386 e.addToContext(std::nullopt,
"SkillManagerComponentPluginUser", __FUNCTION__, __LINE__);
387 throw e.toManagerIce();
390 skills::manager::dto::FluxioSkillStatusUpdateList ret;
392 for (
const auto& s : l.getResult())
394 ret.push_back(s.toManagerIce());
400 skills::manager::dto::FluxioSkillList
403 skills::manager::dto::FluxioSkillList ret;
405 auto l = this->plugin->getSkillList();
409 auto e = l.getError();
410 e.addToContext(std::nullopt,
"SkillManagerComponentPluginUser", __FUNCTION__, __LINE__);
411 throw e.toManagerIce();
414 for (
const auto& s : l.getResult())
422 const auto& skill = s->toManagerIce();
424 if (!skill.has_value())
426 ARMARX_WARNING <<
"Skill with id " << s->id <<
" could not be converted";
430 ret.push_back(skill.value());
436 IceUtil::Optional<skills::manager::dto::FluxioSkill>
439 auto result = this->plugin->getSkill(
id);
441 if (!result.isSuccess())
443 auto e = result.getError();
444 e.addToContext(std::nullopt,
"SkillManagerComponentPluginUser", __FUNCTION__, __LINE__);
445 throw e.toManagerIce();
447 const auto& skill = result.getResult();
448 if (skill ==
nullptr)
453 const auto& s = skill->toManagerIce();
465 const skills::manager::dto::FluxioSkill& skill,
466 const Ice::Current& current)
468 std::scoped_lock l(this->plugin->fluxioDC.skillsMutex,
469 this->plugin->fluxioDC.profilesMutex,
470 this->plugin->fluxioDC.providersMutex,
471 this->plugin->fluxioDC.typesMutex);
472 auto& skillsMap = this->plugin->fluxioDC.skills;
473 auto& providersMap = this->plugin->fluxioDC.providers;
474 auto& profilesMap = this->plugin->fluxioDC.profiles;
475 auto& typesMap = this->plugin->fluxioDC.types;
476 const auto& s = skillsMap.find(skill.id);
479 if (s == skillsMap.end())
486 auto res = this->plugin->getSkillMutex(skill.id, userId);
487 if (!res.isSuccess())
489 ARMARX_WARNING <<
"User " << userId <<
"User does not have Mutex for this Skill"
492 auto error = res.getError();
495 "SkillManagerComponentPluginUser",
498 throw error.toManagerIce();
502 s->second.updateFromIce(skill, providersMap, profilesMap, skillsMap, typesMap);
504 std::optional<skills::manager::arondto::FluxioSkill> opt = s->second.toAronXml();
506 if (!opt.has_value())
508 ARMARX_WARNING <<
"Skill with id " << skill.id <<
" could not be converted";
519 const std::string& userId,
520 const std::string& skillId,
521 const skills::manager::dto::FluxioParameterList& parameters,
522 const Ice::Current& current)
525 for (
const auto& param : parameters)
531 ARMARX_WARNING <<
"Parameter value of param " << param.id <<
" and skill "
532 << skillId <<
" could not be converted";
543 const std::string& userId,
544 const std::string& skillId,
545 const std::string& parameterId,
546 const skills::manager::dto::FluxioValueList& values,
547 const Ice::Current& current)
549 std::scoped_lock l(this->plugin->fluxioDC.skillsMutex,
550 this->plugin->fluxioDC.profilesMutex);
551 auto& skillsMap = this->plugin->fluxioDC.skills;
552 auto& profilesMap = this->plugin->fluxioDC.profiles;
555 const auto& skill = skillsMap.find(skillId);
557 if (skill == skillsMap.end())
564 auto res = this->plugin->getSkillMutex(skillId, userId);
565 if (!res.isSuccess())
567 ARMARX_WARNING <<
"User " << userId <<
"User does not have Mutex for this Skill"
570 auto error = res.getError();
573 "SkillManagerComponentPluginUser",
576 throw error.toManagerIce();
580 const auto& p = skill->second.parameters.find(parameterId);
581 if (p == skill->second.parameters.end())
583 ARMARX_WARNING <<
"Parameter with id " << parameterId <<
" not found in skill with id "
589 p->second.updateValuesFromIce(values, profilesMap);
593 IceUtil::Optional<skills::manager::dto::FluxioIdentificatorList>
595 const std::string& userId,
597 const Ice::Current& current)
599 skills::manager::dto::FluxioIdentificatorList ret;
602 res = this->plugin->getSkill(skillId);
610 std::optional<skills::manager::arondto::FluxioSkill> opt = skillptr->toAronXml();
611 if (!opt.has_value())
613 ARMARX_WARNING <<
"Skill with id " << skillId <<
" could not be converted";
616 skills::manager::arondto::FluxioSkill skill = opt.value();
618 auto l = this->plugin->deleteSkill(skillId, userId, dryRun);
625 for (
const auto& s : l.value())
632 ret.push_back(s->toFluxioIdentificatorIce());
637 skill.deleted =
true;
646 const std::string& userId,
647 const Ice::Current& current)
649 return this->plugin->getSkillMutex(skillId, userId).getResult();
654 const std::string& userId,
655 const Ice::Current& current)
657 this->plugin->deleteSkillMutex(skillId, userId);
660 IceUtil::Optional<skills::manager::dto::FluxioIdentificatorList>
662 const std::string& parameterId,
663 const std::string& userId,
665 const Ice::Current& current)
667 skills::manager::dto::FluxioIdentificatorList ret;
668 auto res = this->plugin->deleteSkillParameter(skillId, parameterId, userId, dryRun);
670 if (!res.isSuccess())
672 throw res.getError().toManagerIce();
675 for (
const auto& s : res.getResult())
682 ret.push_back(s->toFluxioIdentificatorIce());
688 IceUtil::Optional<skills::manager::dto::FluxioIdentificatorList>
690 const std::string& skillId,
691 const skills::manager::dto::FluxioParameter& parameter,
692 const std::string& userId,
694 const Ice::Current& current)
696 skills::manager::dto::FluxioIdentificatorList ret;
697 auto res = this->plugin->updateSkillParameter(skillId, parameter, userId, dryRun);
699 if (!res.isSuccess())
701 throw res.getError().toManagerIce();
704 for (
const auto& s : res.getResult())
711 ret.push_back(s->toFluxioIdentificatorIce());
717 skills::manager::dto::FluxioProfileList
720 skills::manager::dto::FluxioProfileList ret;
722 auto l = this->plugin->getProfileList();
724 for (
const auto& p : l.getResult())
731 ret.push_back(p->toManagerIce());
737 IceUtil::Optional<skills::manager::dto::FluxioProfile>
740 auto profile = this->plugin->getProfile(
id);
742 if (!profile.isSuccess())
744 auto e = profile.getError();
745 e.addToContext(std::nullopt,
"SkillManagerComponentPluginUser", __FUNCTION__, __LINE__);
746 throw e.toManagerIce();
748 return profile.getResult().toManagerIce();
751 skills::manager::dto::FluxioProfile
753 const skills::manager::dto::FluxioProfile& profile,
754 const Ice::Current& current)
756 std::unique_lock l(this->plugin->fluxioDC.profilesMutex);
757 auto& profilesMap = this->plugin->fluxioDC.profiles;
771 const skills::manager::dto::FluxioProfile& profile,
772 const Ice::Current& current)
774 std::unique_lock l(this->plugin->fluxioDC.profilesMutex);
775 auto& profilesMap = this->plugin->fluxioDC.profiles;
781 skills::manager::dto::FluxioProviderList
784 skills::manager::dto::FluxioProviderList ret;
786 auto l = this->plugin->getProviderList();
789 auto e = l.getError();
790 e.addToContext(std::nullopt,
"SkillManagerComponentPluginUser", __FUNCTION__, __LINE__);
791 throw e.toManagerIce();
794 for (
const auto& p : l.getResult())
801 ret.push_back(p->toManagerIce());
807 IceUtil::Optional<skills::manager::dto::FluxioProvider>
810 auto provider = this->plugin->getProvider(
id);
812 if (provider.isSuccess())
814 auto e = provider.getError();
815 e.addToContext(std::nullopt,
"SkillManagerComponentPluginUser", __FUNCTION__, __LINE__);
816 throw e.toManagerIce();
818 return provider.getResult().toManagerIce();
821 IceUtil::Optional<skills::manager::dto::FluxioSkillList>
823 const Ice::Current& current)
825 skills::manager::dto::FluxioSkillList ret;
827 auto l = this->plugin->getSkillsOfProvider(
id);
831 auto error = l.getError();
833 std::nullopt,
"SkillManagerComponentPluginUser", __FUNCTION__, __LINE__);
834 throw error.toManagerIce();
837 for (
const auto& s : l.getResult())
845 const auto& skill = s->toManagerIce();
847 if (!skill.has_value())
850 <<
"SkillManagerComponentPluginUser::getSkillsOfProvider: Skill with id "
851 << s->id <<
" could not be converted";
855 ret.push_back(skill.value());
861 IceUtil::Optional<skills::manager::dto::FluxioSkill>
863 const std::string& userId,
864 const std::string& providerId,
865 const skills::manager::dto::FluxioSkill& skill,
866 const Ice::Current& current)
868 std::unique_lock skillsLock(this->plugin->fluxioDC.skillsMutex, std::defer_lock);
869 std::unique_lock profilesLock(this->plugin->fluxioDC.profilesMutex, std::defer_lock);
870 std::unique_lock providersLock(this->plugin->fluxioDC.providersMutex, std::defer_lock);
871 std::unique_lock typesLock(this->plugin->fluxioDC.typesMutex, std::defer_lock);
872 std::lock(skillsLock, profilesLock, providersLock, typesLock);
874 auto& skillsMap = this->plugin->fluxioDC.skills;
875 auto& providersMap = this->plugin->fluxioDC.providers;
876 auto& profilesMap = this->plugin->fluxioDC.profiles;
877 auto& typesMap = this->plugin->fluxioDC.types;
881 if (skillBO ==
nullptr)
883 ARMARX_WARNING <<
"Skill with id " << skill.id <<
" could not be converted";
889 "SkillManagerComponentPluginUser",
896 profilesLock.unlock();
897 providersLock.unlock();
900 auto& skillReleased = *skillBO.release();
902 this->plugin->addSkillToProvider(userId, providerId, std::move(skillReleased));
903 if (!res.isSuccess())
906 <<
" could not be added to provider with id " << providerId;
908 auto error = res.getError();
911 {skill.id, providerId})),
912 "SkillManagerComponentPluginUser",
915 throw error.toManagerIce();
918 const auto& s = res.getResult();
923 <<
" could not be added to provider with id " << providerId;
927 const auto& ret = s->toManagerIce();
928 if (!ret.has_value())
930 ARMARX_WARNING <<
"Skill with id " << skill.id <<
" could not be converted";
934 const std::optional<skills::manager::arondto::FluxioSkill> aronSkill = s->toAronXml();
936 if (!aronSkill.has_value())
938 ARMARX_WARNING <<
"Skill with id " << skill.id <<
" could not be converted to Aron";
953 std::optional<std::vector<skills::manager::arondto::FluxioSkill>>
960 std::optional<std::vector<skills::manager::arondto::FluxioSkill>>
969 const skills::manager::arondto::FluxioProfile& profile)
974 std::optional<std::vector<skills::manager::arondto::FluxioProfile>>
PluginT * addPlugin(const std::string prefix="", ParamsT &&... params)
bool getSkillMutex(const std::string &skillId, const std::string &userId, const Ice::Current ¤t) override
IceUtil::Optional< skills::manager::dto::FluxioProvider > getProvider(const std::string &id, const Ice::Current ¤t) override
virtual std::optional< std::vector< skills::manager::arondto::FluxioSkill > > loadCompositeSkillsOfProvider(const std::string &providerId)
void removeProvider(const skills::manager::dto::ProviderID &provider, const Ice::Current ¤t) override
void updateProfile(const skills::manager::dto::FluxioProfile &profile, const Ice::Current ¤t) override
void addProvider(const skills::manager::dto::ProviderInfo &providerInfo, const Ice::Current ¤t) override
virtual void addProfile(const skills::manager::arondto::FluxioProfile &profile)
aron::type::dto::AronObjectPtr getTypes(const Ice::Current ¤t) override
skills::manager::dto::SkillStatusUpdateMap getSkillExecutionStatuses(const Ice::Current ¤t) override
skills::manager::dto::SkillExecutionID executeSkillAsync(const skills::manager::dto::SkillExecutionRequest &skillExecutionRequest, const Ice::Current ¤t) override
IceUtil::Optional< skills::manager::dto::SkillDescription > getSkillDescription(const skills::manager::dto::SkillID &id, const Ice::Current ¤t) override
virtual void saveSkill(const skills::manager::arondto::FluxioSkill &skill)
virtual std::optional< std::vector< skills::manager::arondto::FluxioSkill > > loadCompositeSkills()
bool updateSkillParameterValues(const std::string &userId, const std::string &skillId, const std::string ¶meterId, const skills::manager::dto::FluxioValueList &values, const Ice::Current ¤t) override
IceUtil::Optional< skills::manager::dto::FluxioSkill > getSkill(const std::string &id, const Ice::Current ¤t) override
skills::manager::dto::FluxioProfileList getProfileList(const Ice::Current ¤t) override
IceUtil::Optional< std::string > executeFluxioSkillLegacy(const std::string &skillId, const std::string &executionArgs, const Ice::Current ¤t) override
IceUtil::Optional< skills::manager::dto::FluxioIdentificatorList > updateSkillParameter(const std::string &skillId, const skills::manager::dto::FluxioParameter ¶meter, const std::string &userId, bool dryRun, const Ice::Current ¤t) override
bool updateSkillValues(const std::string &userId, const std::string &skillId, const skills::manager::dto::FluxioParameterList ¶meters, const Ice::Current ¤t) override
SkillManagerComponentPluginUser()
IceUtil::Optional< std::string > executeFluxioSkill(const std::string &skillId, const std::string &profileId, const Ice::Current ¤t) override
void updateStatusForSkill(const skills::provider::dto::SkillStatusUpdate &update, const skills::callback::dto::ProviderID &id, const Ice::Current ¤t) override
skills::manager::dto::SkillDescriptionMap getSkillDescriptions(const Ice::Current ¤t) override
void deleteSkillMutex(const std::string &skillId, const std::string &userId, const Ice::Current ¤t) override
IceUtil::Optional< skills::manager::dto::FluxioIdentificatorList > deleteSkillParameter(const std::string &skillId, const std::string ¶meterId, const std::string &userId, bool dryRun, const Ice::Current ¤t) override
skills::manager::dto::SkillStatusUpdate executeSkill(const skills::manager::dto::SkillExecutionRequest &info, const Ice::Current ¤t) override
IceUtil::Optional< skills::manager::dto::FluxioProfile > getProfile(const std::string &id, const Ice::Current ¤t) override
void abortFluxioSkill(const std::string &executionId, const Ice::Current ¤t) override
bool updateSkill(const std::string &userId, const skills::manager::dto::FluxioSkill &skill, const Ice::Current ¤t) override
IceUtil::Optional< skills::manager::dto::SkillStatusUpdate > getSkillExecutionStatus(const skills::manager::dto::SkillExecutionID &executionId, const Ice::Current ¤t) override
IceUtil::Optional< skills::manager::dto::FluxioSkillStatusUpdateList > getFluxioSkillExecutionStatus(const std::string &executionId, const Ice::Current ¤t) override
skills::provider::dto::AbortSkillResult abortSkill(const skills::manager::dto::SkillExecutionID &id, const Ice::Current ¤t) override
IceUtil::Optional< skills::manager::dto::FluxioIdentificatorList > deleteSkill(const std::string &skillId, const std::string &userId, bool dryRun, const Ice::Current ¤t) override
skills::manager::dto::FluxioProfile createProfile(const skills::manager::dto::FluxioProfile &profile, const Ice::Current ¤t) override
skills::manager::dto::FluxioProviderList getProviderList(const Ice::Current ¤t) override
skills::provider::dto::AbortSkillResult abortSkillAsync(const skills::manager::dto::SkillExecutionID &id, const Ice::Current ¤t) override
std::vector< skills::provider::dto::AbortSkillResult > abortAllSkills(const Ice::Current ¤t) override
skills::provider::dto::ParameterUpdateResult updateSkillParameters(const skills::manager::dto::SkillExecutionID &executionId, const aron::data::dto::DictPtr ¶ms, const Ice::Current ¤t) override
std::vector< skills::provider::dto::AbortSkillResult > abortAllSkillsAsync(const Ice::Current ¤t) override
IceUtil::Optional< skills::manager::dto::FluxioSkillList > getSkillsOfProvider(const std::string &id, const Ice::Current ¤t) override
virtual std::optional< std::vector< skills::manager::arondto::FluxioProfile > > loadProfiles()
skills::manager::dto::FluxioSkillList getSkillList(const Ice::Current ¤t) override
IceUtil::Optional< skills::manager::dto::FluxioSkill > addSkillToProvider(const std::string &userId, const std::string &providerId, const skills::manager::dto::FluxioSkill &skill, const Ice::Current ¤t) override
static PointerType FromAronDictDTO(const data::dto::DictPtr &aron)
static data::DictPtr ConvertFromNlohmannJSONObject(const nlohmann::json &, const armarx::aron::Path &p={})
static ProviderID FromIce(const manager::dto::ProviderID &)
static ProviderInfo FromIce(const manager::dto::ProviderInfo &)
static SkillExecutionRequest FromIce(const manager::dto::SkillExecutionRequest &)
static SkillID FromIce(const manager::dto::SkillID &)
A base class for skill exceptions.
static FluxioException create(const std::string &message, const FluxioExceptionType &type, const std::string &className, const char *function, int line)
#define ARMARX_IMPORTANT
The logging level for always important information, but expected behaviour (in contrast to ARMARX_WAR...
#define ARMARX_ERROR
The logging level for unexpected behaviour, that must be fixed.
#define ARMARX_WARNING
The logging level for unexpected behaviour, but not a serious problem.
::IceInternal::Handle< Dict > DictPtr
std::shared_ptr< Dict > DictPtr
std::string createErrorMessage(ErrorCode code, const std::vector< std::string > &args)
This file offers overloads of toIce() and fromIce() functions for STL container types.
manager::dto::FluxioProfile toManagerIce() const
manager::arondto::FluxioProfile toManagerAron() const
static FluxioProfile FromIce(const manager::dto::FluxioProfile &i, std::map< std::string, FluxioProfile > &profilesMap)
static std::unique_ptr< FluxioSkill > FromIce(const manager::dto::FluxioSkill &i, std::map< std::string, FluxioProvider > &providersMap, std::map< std::string, FluxioProfile > &profilesMap, std::map< std::string, FluxioSkill > &skillsMap, std::map< std::string, aron::type::ObjectPtr > &typesMap)
static SkillExecutionID FromIce(const skills::manager::dto::SkillExecutionID &)