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 
11 
12 
13 namespace armarx
14 {
15  class Component;
16 }
17 
19 {
20  class Plugin;
21 }
22 
24 {
25 
27  {
28  public:
29  Plugin(ManagedIceObject& parent, std::string prefix);
30  virtual ~Plugin() override;
31 
32 
33  virtual void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override;
34 
35  virtual void preOnInitComponent() override;
36  virtual void postOnInitComponent() override;
37  virtual void preOnConnectComponent() override;
38  virtual void postOnConnectComponent() override;
39  virtual void preOnDisconnectComponent() override;
40 
41 
42  public:
43  /// Set the name of the wm and the ltm
44  void setMemoryName(const std::string& memoryName);
45 
46 
47  protected:
48  /**
49  * @brief Register the parent component in the MNS.
50  *
51  * Called before onConnect() if MNS is enabled.
52  */
53  mns::dto::RegisterServerResult registerServer(armarx::Component& parent);
54 
55  /**
56  * @brief Remove the parent component from the MNS.
57  *
58  * Called before onDisconnect() if MNS is enabled.
59  */
60  mns::dto::RemoveServerResult removeServer();
61 
62 
63  public:
64  // Working Memory
65 
66  /// The actual memory.
68 
69  /// Helps connecting `memory` to ice. Used to handle Ice callbacks.
71 
72 
73  // Working Memory Updates (publishing)
74 
75  /// Available at onInit().
76  std::string memoryTopicName;
77  /// Available after onConnect().
78  client::MemoryListenerInterfacePrx memoryTopic;
79 
80 
81  // Long-Term Memory
82 
83  /// A manager class for the ltm. It internally holds a normal wm instance as a cache.
85 
86 
87  private:
88  client::plugins::Plugin* clientPlugin = nullptr;
89 
90  std::atomic_bool initialized = false;
91  std::atomic_bool connected = false;
92  std::atomic_bool statistics_saved = false;
93  };
94 } // namespace armarx::armem::server::plugins
95 
96 namespace armarx::armem::server
97 {
98  using plugins::Plugin;
99 }
armarx::armem::server::plugins::Plugin::postOnConnectComponent
virtual void postOnConnectComponent() override
Definition: Plugin.cpp:98
armarx::armem::server::plugins::Plugin::iceAdapter
MemoryToIceAdapter iceAdapter
Helps connecting memory to ice. Used to handle Ice callbacks.
Definition: Plugin.h:70
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:20
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:168
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:84
armarx::armem::server::plugins::Plugin::Plugin
Plugin(ManagedIceObject &parent, std::string prefix)
Definition: Plugin.cpp:22
armarx::armem::server::plugins::Plugin::memoryTopicName
std::string memoryTopicName
Available at onInit().
Definition: Plugin.h:76
MemoryToIceAdapter.h
armarx::Component
Baseclass for all ArmarX ManagedIceObjects requiring properties.
Definition: Component.h:91
armarx::armem::server
Definition: GraspMemory.cpp:34
armarx::armem::server::plugins::Plugin::postCreatePropertyDefinitions
virtual void postCreatePropertyDefinitions(PropertyDefinitionsPtr &properties) override
Definition: Plugin.cpp:32
armarx::armem::server::plugins::Plugin::preOnConnectComponent
virtual void preOnConnectComponent() override
Definition: Plugin.cpp:86
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:156
IceUtil::Handle< class PropertyDefinitionContainer >
armarx::armem::server::plugins::Plugin::postOnInitComponent
virtual void postOnInitComponent() override
Definition: Plugin.cpp:63
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:110
armarx::armem::server::plugins::Plugin::memoryTopic
client::MemoryListenerInterfacePrx memoryTopic
Available after onConnect().
Definition: Plugin.h:78
plugins::Plugin
DiskPersistence.h
ComponentPlugin.h
armarx::armem::server::plugins::Plugin::preOnInitComponent
virtual void preOnInitComponent() override
Definition: Plugin.cpp:54
armarx::armem::server::plugins::Plugin::workingMemory
server::wm::Memory workingMemory
The actual memory.
Definition: Plugin.h:67
armarx::armem::server::plugins
Definition: Plugin.cpp:17
armarx::armem::server::plugins::Plugin
Definition: Plugin.h:26
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:203