Go to the documentation of this file.
15 #include <RobotAPI/libraries/armem_objects/aron/Attachment.aron.generated.h>
16 #include <RobotAPI/libraries/armem_objects/aron/FamiliarObjectInstance.aron.generated.h>
26 const std::string prefix = propertyPrefix;
28 def->optional(p.
memoryName, prefix +
"MemoryName");
49 inline std::optional<arondto::FamiliarObjectInstance>
52 arondto::FamiliarObjectInstance aronBo;
55 aronBo.fromAron(instance.
data());
66 std::optional<std::map<std::string, arondto::FamiliarObjectInstance>>
68 const std::optional<std::string>& providerName)
const
79 if (providerName.has_value())
81 providerSegments = &cs.providerSegments().
withName(providerName.value());
85 providerSegments = &cs.providerSegments().
all();
96 if (not qResult.success)
103 std::map<std::string, arondto::FamiliarObjectInstance> result;
105 qResult.memory.forEachProviderSegment(
108 auto& thisResult = result[ps.
name()];
111 <<
"Query returned more than one entity";
116 if (
auto converted =
convert(e))
118 thisResult = converted.value();
126 std::map<std::string, std::vector<arondto::FamiliarObjectInstance>>
128 const std::optional<std::string>& providerName)
const
138 if (providerName.has_value())
140 providerSegments = &cs.providerSegments().
withName(providerName.value());
144 providerSegments = &cs.providerSegments().
all();
154 if (not qResult.success)
160 std::map<std::string, std::vector<arondto::FamiliarObjectInstance>> result;
162 qResult.memory.forEachProviderSegment(
165 auto& thisResult = result[ps.
name()];
170 if (
auto converted =
convert(e))
172 thisResult.push_back(converted.value());
180 std::map<std::string, std::vector<arondto::FamiliarObjectInstance>>
183 const std::optional<std::string>& providerName)
const
193 if (providerName.has_value())
195 providerSegments = &cs.providerSegments().
withName(providerName.value());
199 providerSegments = &cs.providerSegments().
all();
212 if (not qResult.success)
218 std::map<std::string, std::vector<arondto::FamiliarObjectInstance>> result;
220 qResult.memory.forEachProviderSegment(
223 auto& thisResult = result[ps.
name()];
228 if (
auto converted =
convert(e))
230 thisResult.push_back(converted.value());
EntitySelector & all() override
SnapshotSelector & latest()
EntitySelector & entities()
Start specifying entities.
A known object ID of the form "Dataset/ClassName" or "Dataset/ClassName/InstanceName".
ObjectID getClassID() const
Return just the class ID without an intance name.
Client-side working entity instance.
QueryInput buildQueryInput() const
SnapshotSelector & snapshots()
Start specifying entity snapshots.
virtual DerivedT & withNamesStartingWith(const std::string &prefix)
const std::string MemoryName
void registerPropertyDefinitions(armarx::PropertyDefinitionsPtr &def)
std::optional< std::map< std::string, arondto::FamiliarObjectInstance > > queryLatestFamiliarObjectInstance(const ObjectID &instanceId, const std::optional< std::string > &providerName=std::nullopt) const
void connect(armem::client::MemoryNameSystem &memoryNameSystem)
std::vector< std::string > getEntityNames() const
CoreSegmentSelector & coreSegments()
Start specifying core segments.
CoreSegmentSelector & withName(const std::string &name) override
Reader useReader(const MemoryID &memoryID)
Use a memory server and get a reader for it.
const std::string CoreFamiliarObjectInstanceSegmentName
EntitySelector & withName(const std::string &name) override
ProviderSegmentSelector & withName(const std::string &name) override
bool forEachInstance(InstanceFunctionT &&func)
The memory name system (MNS) client.
Indicates that a query to the Memory Name System failed.
The query::Builder class provides a fluent-style specification of hierarchical queries.
std::optional< arondto::FamiliarObjectInstance > convert(const wm::EntityInstance &instance)
#define ARMARX_CHECK_EQUAL(lhs, rhs)
This macro evaluates whether lhs is equal (==) rhs and if it turns out to be false it will throw an E...
std::map< std::string, std::vector< arondto::FamiliarObjectInstance > > queryLatestFamiliarObjectInstancesFromClass(const ObjectID &classId, const std::optional< std::string > &providerName=std::nullopt) const
const DataT & data() const
ProviderSegmentSelector & all() override
std::map< std::string, std::vector< arondto::FamiliarObjectInstance > > queryAllLatestFamiliarObjectInstances(const std::optional< std::string > &providerName=std::nullopt) const
QueryResult query(const QueryInput &input) const
Perform a query on the WM.
std::string str() const
Return "dataset/className" or "dataset/className/instanceName".