Skip to content
Snippets Groups Projects
Commit 1169f0c0 authored by Firat Yusuf Duran's avatar Firat Yusuf Duran :moyai:
Browse files

skillmemory: change save by name to id

parent a6dc187e
No related branches found
No related tags found
2 merge requests!458Fluxio/dev get types,!449Fluxio preliminary release
...@@ -247,9 +247,9 @@ namespace armarx ...@@ -247,9 +247,9 @@ namespace armarx
return composedSkillCoreSegment.getSkills(); return composedSkillCoreSegment.getSkills();
} }
std::optional<std::vector<skills::manager::arondto::FluxioSkill>> SkillsMemory::loadCompositeSkillsOfProvider(const std::string& providerName) std::optional<std::vector<skills::manager::arondto::FluxioSkill>> SkillsMemory::loadCompositeSkillsOfProvider(const std::string& providerId)
{ {
return composedSkillCoreSegment.getSkillsOfProvider(providerName); return composedSkillCoreSegment.getSkillsOfProvider(providerId);
} }
void SkillsMemory::addProfile(const skills::manager::arondto::FluxioProfile& profile) void SkillsMemory::addProfile(const skills::manager::arondto::FluxioProfile& profile)
......
...@@ -115,7 +115,7 @@ namespace armarx ...@@ -115,7 +115,7 @@ namespace armarx
void saveSkill(const skills::manager::arondto::FluxioSkill& skillt) override; void saveSkill(const skills::manager::arondto::FluxioSkill& skillt) override;
std::optional<std::vector<skills::manager::arondto::FluxioSkill>> loadCompositeSkills() override; std::optional<std::vector<skills::manager::arondto::FluxioSkill>> loadCompositeSkills() override;
std::optional<std::vector<skills::manager::arondto::FluxioSkill>> loadCompositeSkillsOfProvider(const std::string& providerName) override; std::optional<std::vector<skills::manager::arondto::FluxioSkill>> loadCompositeSkillsOfProvider(const std::string& providerId) override;
void addProfile(const skills::manager::arondto::FluxioProfile& profile) override; void addProfile(const skills::manager::arondto::FluxioProfile& profile) override;
......
...@@ -43,7 +43,7 @@ namespace armarx::skills::segment ...@@ -43,7 +43,7 @@ namespace armarx::skills::segment
ComposedSkillLibraryCoreSegment::addSkill(const skills::manager::arondto::FluxioSkill& skill) ComposedSkillLibraryCoreSegment::addSkill(const skills::manager::arondto::FluxioSkill& skill)
{ {
// add skills // add skills
armem::MemoryID provId = id().withProviderSegmentName(skill.skillProviderId.hint); armem::MemoryID provId = id().withProviderSegmentName(skill.skillProviderId.id);
armem::Commit commit; armem::Commit commit;
armem::EntityUpdate& entityUpdate = commit.add(); armem::EntityUpdate& entityUpdate = commit.add();
...@@ -52,7 +52,7 @@ namespace armarx::skills::segment ...@@ -52,7 +52,7 @@ namespace armarx::skills::segment
entityUpdate.sentTime = armem::Time::Now(); entityUpdate.sentTime = armem::Time::Now();
entityUpdate.arrivedTime = armem::Time::Now(); entityUpdate.arrivedTime = armem::Time::Now();
entityUpdate.instancesData = {skill.toAron()}; entityUpdate.instancesData = {skill.toAron()};
entityUpdate.entityID = provId.withEntityName(skill.name); entityUpdate.entityID = provId.withEntityName(skill.id);
// Commit data to memory and notify // Commit data to memory and notify
iceMemory.commit(commit); iceMemory.commit(commit);
...@@ -88,23 +88,30 @@ namespace armarx::skills::segment ...@@ -88,23 +88,30 @@ namespace armarx::skills::segment
} }
std::optional<std::vector<skills::manager::arondto::FluxioSkill>> std::optional<std::vector<skills::manager::arondto::FluxioSkill>>
ComposedSkillLibraryCoreSegment::getSkillsOfProvider(const std::string& providerName) const ComposedSkillLibraryCoreSegment::getSkillsOfProvider(const std::string& providerId) const
{ {
std::optional<std::vector<skills::manager::arondto::FluxioSkill>> opt = getSkills(); std::vector<skills::manager::arondto::FluxioSkill> ret;
if (!opt.has_value()) armarx::armem::client::query::Builder qb;
qb.allLatestInProviderSegment(id().withProviderSegmentName(providerId));
armem::client::QueryResult qresult = iceMemory.query(qb.buildQueryInput());
if (!qresult.success)
{ {
ARMARX_WARNING << "Query failed: " << qresult.errorMessage;
return std::nullopt; return std::nullopt;
} }
std::vector<skills::manager::arondto::FluxioSkill> ret; const armem::wm::Memory& data = qresult.memory;
for (const auto& skill : opt.value())
{ data.forEachInstance(
//TODO: check if id or name should be used here [&ret](const armem::wm::EntityInstance& instance)
if (skill.skillProviderId.hint == providerName)
{ {
auto skill = instance.dataAs<skills::manager::arondto::FluxioSkill>();
if (skill.deleted)
{
return;
}
ret.push_back(skill); ret.push_back(skill);
} });
}
return ret; return ret;
} }
......
...@@ -32,6 +32,6 @@ namespace armarx::skills::segment ...@@ -32,6 +32,6 @@ namespace armarx::skills::segment
void addSkill(const skills::manager::arondto::FluxioSkill& skill); void addSkill(const skills::manager::arondto::FluxioSkill& skill);
std::optional<std::vector<skills::manager::arondto::FluxioSkill>> getSkills() const; std::optional<std::vector<skills::manager::arondto::FluxioSkill>> getSkills() const;
std::optional<std::vector<skills::manager::arondto::FluxioSkill>> getSkillsOfProvider(const std::string& providerName) const; std::optional<std::vector<skills::manager::arondto::FluxioSkill>> getSkillsOfProvider(const std::string& providerId) const;
}; };
} // namespace armarx::skills::segment } // namespace armarx::skills::segment
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include <optional> #include <optional>
#include <string> #include <string>
#include <vector> #include <vector>
#include <boost/uuid/uuid_io.hpp>
#include <Ice/Exception.h> #include <Ice/Exception.h>
#include <Ice/OutputStream.h> #include <Ice/OutputStream.h>
...@@ -40,8 +41,9 @@ namespace armarx ...@@ -40,8 +41,9 @@ namespace armarx
{ {
auto i = skills::ProviderInfo::FromIce(info); auto i = skills::ProviderInfo::FromIce(info);
this->plugin->addProvider(i); this->plugin->addProvider(i);
std::string providerId = boost::uuids::to_string(armarx::plugins::SkillManagerComponentPlugin::createUuidWithString(info.providerId.providerName));
std::optional<std::vector<skills::manager::arondto::FluxioSkill>> opt = std::optional<std::vector<skills::manager::arondto::FluxioSkill>> opt =
loadCompositeSkillsOfProvider(info.providerId.providerName); loadCompositeSkillsOfProvider(providerId);
if (!opt.has_value()) { if (!opt.has_value()) {
ARMARX_ERROR << "Failed to load composite skills for provider " << info.providerId.providerName; ARMARX_ERROR << "Failed to load composite skills for provider " << info.providerId.providerName;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment