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
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)
......
......@@ -115,7 +115,7 @@ namespace armarx
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>> 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;
......
......@@ -43,7 +43,7 @@ namespace armarx::skills::segment
ComposedSkillLibraryCoreSegment::addSkill(const skills::manager::arondto::FluxioSkill& skill)
{
// add skills
armem::MemoryID provId = id().withProviderSegmentName(skill.skillProviderId.hint);
armem::MemoryID provId = id().withProviderSegmentName(skill.skillProviderId.id);
armem::Commit commit;
armem::EntityUpdate& entityUpdate = commit.add();
......@@ -52,7 +52,7 @@ namespace armarx::skills::segment
entityUpdate.sentTime = armem::Time::Now();
entityUpdate.arrivedTime = armem::Time::Now();
entityUpdate.instancesData = {skill.toAron()};
entityUpdate.entityID = provId.withEntityName(skill.name);
entityUpdate.entityID = provId.withEntityName(skill.id);
// Commit data to memory and notify
iceMemory.commit(commit);
......@@ -88,23 +88,30 @@ namespace armarx::skills::segment
}
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();
if (!opt.has_value())
std::vector<skills::manager::arondto::FluxioSkill> ret;
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;
}
std::vector<skills::manager::arondto::FluxioSkill> ret;
for (const auto& skill : opt.value())
{
//TODO: check if id or name should be used here
if (skill.skillProviderId.hint == providerName)
const armem::wm::Memory& data = qresult.memory;
data.forEachInstance(
[&ret](const armem::wm::EntityInstance& instance)
{
auto skill = instance.dataAs<skills::manager::arondto::FluxioSkill>();
if (skill.deleted)
{
return;
}
ret.push_back(skill);
}
}
});
return ret;
}
......
......@@ -32,6 +32,6 @@ namespace armarx::skills::segment
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>> getSkillsOfProvider(const std::string& providerName) const;
std::optional<std::vector<skills::manager::arondto::FluxioSkill>> getSkillsOfProvider(const std::string& providerId) const;
};
} // namespace armarx::skills::segment
......@@ -4,6 +4,7 @@
#include <optional>
#include <string>
#include <vector>
#include <boost/uuid/uuid_io.hpp>
#include <Ice/Exception.h>
#include <Ice/OutputStream.h>
......@@ -40,8 +41,9 @@ namespace armarx
{
auto i = skills::ProviderInfo::FromIce(info);
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 =
loadCompositeSkillsOfProvider(info.providerId.providerName);
loadCompositeSkillsOfProvider(providerId);
if (!opt.has_value()) {
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