Skip to content
Snippets Groups Projects
Commit 1962db0f authored by Philip Scherer's avatar Philip Scherer
Browse files

Add ActionsInterface to MemoryInterface in Ice

Also adds default implementations for action methods, so all the
existing memory servers should continue to work.
parent 7942e947
No related branches found
No related tags found
1 merge request!210Resolve "ArMem Servers + Viewer: Add general framework to allow visualization and other operations triggered by Viewer"
......@@ -115,6 +115,7 @@ set(SLICE_FILES
armem/client/MemoryListenerInterface.ice
armem/server.ice
armem/server/ActionsInterface.ice
armem/server/StoringMemoryInterface.ice
armem/server/LoadingMemoryInterface.ice
armem/server/MemoryInterface.ice
......
#include <RobotAPI/interface/armem/memory.ice>
module armarx
{
module armem
{
module server
{
module actions
{
class MenuEntry
{
/// Item in the created action path.
string id;
/// Human-readable text displayed to the user.
string text;
};
sequence<MenuEntry> MenuEntrySeq;
/**
* Clickable / executable action.
*/
class Action extends MenuEntry
{
};
/**
* Expandable sub-menu, but cannot be executed itself.
*/
class SubMenu extends MenuEntry
{
MenuEntrySeq entries;
};
class Menu
{
MenuEntrySeq entries;
};
sequence<string> ActionPath;
struct GetActionsInput
{
armem::data::MemoryID id;
};
sequence<GetActionsInput> GetActionsInputSeq;
struct GetActionsOutput
{
Menu menu;
};
sequence<GetActionsOutput> GetActionsOutputSeq;
struct ExecuteActionInput
{
armem::data::MemoryID id;
ActionPath actionPath;
};
sequence<ExecuteActionInput> ExecuteActionInputSeq;
struct ExecuteActionOutput
{
bool success = false;
string errorMessage;
};
sequence<ExecuteActionOutput> ExecuteActionOutputSeq;
interface ActionsInterface
{
GetActionsOutputSeq getActions(GetActionsInputSeq inputs);
ExecuteActionOutputSeq executeActions(ExecuteActionInputSeq inputs);
};
}
}
}
}
......@@ -5,6 +5,7 @@
#include <RobotAPI/interface/armem/server/ReadingMemoryInterface.ice>
#include <RobotAPI/interface/armem/server/WritingMemoryInterface.ice>
#include <RobotAPI/interface/armem/server/ActionsInterface.ice>
#include <RobotAPI/interface/armem/client/MemoryListenerInterface.ice>
......@@ -26,6 +27,7 @@ module armarx
interface MemoryInterface extends
WorkingMemoryInterface,
LongTermMemoryInterface,
actions::ActionsInterface,
client::MemoryListenerInterface
{
};
......
......@@ -91,4 +91,17 @@ namespace armarx::armem::server::plugins
return plugin->longtermMemory;
}
}
// ACTIONS
actions::GetActionsOutputSeq ReadWritePluginUser::getActions(const actions::GetActionsInputSeq& /*unused*/,
const ::Ice::Current& /*unused*/)
{
return {};
}
actions::ExecuteActionOutputSeq ReadWritePluginUser::executeActions(const actions::ExecuteActionInputSeq& /*unused*/,
const ::Ice::Current& /*unused*/)
{
return {};
}
} // namespace armarx::armem::server::plugins
......@@ -47,6 +47,10 @@ namespace armarx::armem::server::plugins
// StoringInterface interface
virtual data::StoreResult store(const data::StoreInput&, const Ice::Current& = Ice::emptyCurrent) override;
// ActionsInterface interface
virtual actions::GetActionsOutputSeq getActions(const actions::GetActionsInputSeq&, const ::Ice::Current& = ::Ice::emptyCurrent) override;
virtual actions::ExecuteActionOutputSeq executeActions(const actions::ExecuteActionInputSeq&, const ::Ice::Current& = ::Ice::emptyCurrent) override;
public:
......
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