MemoryIDResolver.h
Go to the documentation of this file.
1/**
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @package VisionX::components::MemoryGrapher
17 * @author [Author Name] ( [Author Email] )
18 * @date 2021
19 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20 * GNU General Public License
21 */
22
23#pragma once
24
25#include <map>
26#include <optional>
27
33
34#include "MemoryGraph.h"
35
37{
39 {
40 public:
42
44
45 private:
46 std::optional<armarx::armem::wm::Memory> resolveID(const armarx::armem::MemoryID& memoryID);
47
48 static std::optional<std::pair<armarx::aron::data::DictPtr, armarx::aron::type::ObjectPtr>>
49 extractObjectAndType(const armarx::armem::wm::Memory& memory,
50 const armarx::armem::MemoryID& memoryID);
51
52 static std::map<std::string, armarx::armem::MemoryID>
53 getMemoryIDs(const armarx::aron::data::DictPtr& obj,
55
57 };
58} // namespace armarx::armem::id_graph
The memory name system (MNS) client.
MemoryIDResolver(armarx::armem::client::MemoryNameSystem &mns)
MemoryGraph resolveToGraph(const armarx::armem::MemoryID &memoryID)
Client-side working memory.
Brief description of class memory.
Definition memory.h:39
semrel::RelationGraph< MemoryVertex, MemoryEdge, MemoryGraphAttributes > MemoryGraph
Definition MemoryGraph.h:51
std::shared_ptr< Dict > DictPtr
Definition Dict.h:42
std::shared_ptr< Object > ObjectPtr
Definition Object.h:36