5#include <RobotAPI/interface/armem/server/ActionsInterface.h>
18 return servers.count(memoryName) > 0;
21 dto::RegisterServerResult
24 dto::RegisterServerResult result;
26 if (not(input.server.reading or input.server.writing or input.server.configuration or input.server.loading))
28 result.success =
false;
30 ss <<
"Could not register the memory server '" << input.name <<
"'."
31 <<
"\nGiven proxies are null."
32 <<
"\nIf you want to remove a memory server, use `removeServer()`.";
33 result.errorMessage = ss.str();
37 auto it =
servers.find(input.name);
42 else if (not input.existOk)
44 result.success =
false;
46 ss <<
"Could not register the memory '" << input.name <<
"'."
47 <<
"\nMemory '" << input.name <<
"' is already registered. "
48 <<
"\nIf this is ok, set 'existOk' to true when registering the memory.";
49 result.errorMessage = ss.str();
54 info.
name = input.name;
55 info.
server = input.server;
59 result.success =
true;
63 dto::RemoveServerResult
66 dto::RemoveServerResult result;
70 result.success =
true;
73 ARMARX_DEBUG <<
"Removed memory '" << input.name <<
"'.";
75 else if (!input.notExistOk)
77 result.success =
false;
79 ss <<
"Could not remove the memory '" << input.name <<
"."
80 <<
"\nMemory '" << input.name <<
"' is not registered. "
81 <<
"\nIf this is ok, set 'notExistOk' to true when removing the memory.";
82 result.errorMessage = ss.str();
99 catch (
const Ice::Exception&)
106 dto::GetAllRegisteredServersResult
109 dto::GetAllRegisteredServersResult result;
110 result.success =
true;
111 result.errorMessage =
"";
113 for (
const auto& [name, info] :
servers)
117 result.servers[name] = info.server;
124 dto::ResolveServerResult
127 dto::ResolveServerResult result;
132 result.success =
true;
133 result.server = info.
server;
135 ARMARX_DEBUG <<
"Resolved memory name '" << input.name <<
"'.";
137 catch (
const std::out_of_range&)
139 result.success =
false;
140 std::stringstream ss;
141 ss <<
"Could not resolve the memory name '" << input.name <<
"'."
142 <<
"\nServer '" << input.name <<
"' is not registered.";
143 result.errorMessage = ss.str();
void setTag(const LogTag &tag)
dto::GetAllRegisteredServersResult getAllRegisteredServers()
std::map< std::string, ServerInfo > servers
The registered memories.
bool hasServer(const std::string &memoryName) const
Indicates whether a server entry for that name exists.
virtual dto::RegisterServerResult registerServer(const dto::RegisterServerInput &input)
Register a new memory server or update an existing entry.
dto::RemoveServerResult removeServer(const dto::RemoveServerInput &input)
Remove a server entry.
dto::ResolveServerResult resolveServer(const dto::ResolveServerInput &input)
Gets a server entry, if it is available.
Registry(const std::string &logTag="MemoryNameSystem Registry")
#define ARMARX_INFO
The normal logging level.
#define ARMARX_DEBUG
The logging level for output that is only interesting while debugging.
bool isAvailable(const Prx &proxy)
Information about a memory entry.
mns::dto::MemoryServerInterfaces server