Plugin.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 #include <RobotAPI/interface/armem/client/MemoryListenerInterface.h>
6 #include <RobotAPI/interface/armem/mns/MemoryNameSystemInterface.h>
9 
10 namespace armarx
11 {
12  class Component;
13 }
14 
16 {
17  class Plugin;
18 }
19 
21 {
22 
24  {
25  public:
26  Plugin(ManagedIceObject& parent, std::string prefix);
27  virtual ~Plugin() override;
28 
29 
30  virtual void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override;
31 
32  virtual void preOnInitComponent() override;
33  virtual void postOnInitComponent() override;
34  virtual void preOnConnectComponent() override;
35  virtual void postOnConnectComponent() override;
36  virtual void preOnDisconnectComponent() override;
37 
38 
39  public:
40  /// Set the name of the wm and the ltm
41  void setMemoryName(const std::string& memoryName);
42 
43 
44  protected:
45  /**
46  * @brief Register the parent component in the MNS.
47  *
48  * Called before onConnect() if MNS is enabled.
49  */
50  mns::dto::RegisterServerResult registerServer(armarx::Component& parent);
51 
52  /**
53  * @brief Remove the parent component from the MNS.
54  *
55  * Called before onDisconnect() if MNS is enabled.
56  */
57  mns::dto::RemoveServerResult removeServer();
58 
59 
60  public:
61  // Working Memory
62 
63  /// The actual memory.
65 
66  /// Helps connecting `memory` to ice. Used to handle Ice callbacks.
68 
69 
70  // Working Memory Updates (publishing)
71 
72  /// Available at onInit().
73  std::string memoryTopicName;
74  /// Available after onConnect().
75  client::MemoryListenerInterfacePrx memoryTopic;
76 
77 
78  // Long-Term Memory
79 
80  /// A manager class for the ltm. It internally holds a normal wm instance as a cache.
82 
83 
84  private:
85  client::plugins::Plugin* clientPlugin = nullptr;
86 
87  std::atomic_bool initialized = false;
88  std::atomic_bool connected = false;
89  std::atomic_bool statistics_saved = false;
90  };
91 } // namespace armarx::armem::server::plugins
92 
93 namespace armarx::armem::server
94 {
95  using plugins::Plugin;
96 }
armarx::armem::server::plugins::Plugin::postOnConnectComponent
virtual void postOnConnectComponent() override
Definition: Plugin.cpp:91
armarx::armem::server::plugins::Plugin::iceAdapter
MemoryToIceAdapter iceAdapter
Helps connecting memory to ice. Used to handle Ice callbacks.
Definition: Plugin.h:67
armarx::ManagedIceObjectPlugin::prefix
const std::string & prefix() const
Definition: ManagedIceObjectPlugin.cpp:66
armarx::ManagedIceObjectPlugin::parent
ManagedIceObject & parent()
Definition: ManagedIceObjectPlugin.cpp:72
armarx::armem::server::MemoryToIceAdapter
Helps connecting a Memory server to the Ice interface.
Definition: MemoryToIceAdapter.h:19
armarx::armem::server::plugins::Plugin::~Plugin
virtual ~Plugin() override
armarx::armem::server::ltm::Memory
A memory storing data on the hard drive and in mongodb (needs 'armarx memory start' to start the mong...
Definition: Memory.h:19
memory_definitions.h
armarx::armem::server::wm::Memory
Definition: memory_definitions.h:122
armarx::armem::server::plugins::Plugin::registerServer
mns::dto::RegisterServerResult registerServer(armarx::Component &parent)
Register the parent component in the MNS.
Definition: Plugin.cpp:161
armarx::ComponentPlugin
Definition: ComponentPlugin.h:37
armarx::armem::server::plugins::Plugin::longtermMemory
server::ltm::Memory longtermMemory
A manager class for the ltm. It internally holds a normal wm instance as a cache.
Definition: Plugin.h:81
armarx::armem::server::plugins::Plugin::Plugin
Plugin(ManagedIceObject &parent, std::string prefix)
Definition: Plugin.cpp:18
armarx::armem::server::plugins::Plugin::memoryTopicName
std::string memoryTopicName
Available at onInit().
Definition: Plugin.h:73
MemoryToIceAdapter.h
armarx::Component
Baseclass for all ArmarX ManagedIceObjects requiring properties.
Definition: Component.h:91
armarx::armem::server
Definition: GraspMemory.cpp:33
armarx::armem::server::plugins::Plugin::postCreatePropertyDefinitions
virtual void postCreatePropertyDefinitions(PropertyDefinitionsPtr &properties) override
Definition: Plugin.cpp:28
armarx::armem::server::plugins::Plugin::preOnConnectComponent
virtual void preOnConnectComponent() override
Definition: Plugin.cpp:79
armarx::ManagedIceObject
The ManagedIceObject is the base class for all ArmarX objects.
Definition: ManagedIceObject.h:162
armarx::armem::laser_scans::constants::memoryName
const std::string memoryName
Definition: constants.h:28
armarx::armem::server::plugins::Plugin::setMemoryName
void setMemoryName(const std::string &memoryName)
Set the name of the wm and the ltm.
Definition: Plugin.cpp:149
IceUtil::Handle< class PropertyDefinitionContainer >
armarx::armem::server::plugins::Plugin::postOnInitComponent
virtual void postOnInitComponent() override
Definition: Plugin.cpp:59
armarx::armem::client::plugins
This file is part of ArmarX.
Definition: forward_declarations.h:23
armarx::armem::server::plugins::Plugin::preOnDisconnectComponent
virtual void preOnDisconnectComponent() override
Definition: Plugin.cpp:103
armarx::armem::server::plugins::Plugin::memoryTopic
client::MemoryListenerInterfacePrx memoryTopic
Available after onConnect().
Definition: Plugin.h:75
plugins::Plugin
ComponentPlugin.h
armarx::armem::server::plugins::Plugin::preOnInitComponent
virtual void preOnInitComponent() override
Definition: Plugin.cpp:50
armarx::armem::server::plugins::Plugin::workingMemory
server::wm::Memory workingMemory
The actual memory.
Definition: Plugin.h:64
armarx::armem::server::plugins
Definition: Plugin.cpp:13
armarx::armem::server::plugins::Plugin
Definition: Plugin.h:23
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27
armarx::armem::client::plugins::Plugin
A component plugin offering client-side access to to the working memory system by providing a Memory ...
Definition: Plugin.h:19
armarx::armem::server::plugins::Plugin::removeServer
mns::dto::RemoveServerResult removeServer()
Remove the parent component from the MNS.
Definition: Plugin.cpp:193