OpenRTM-aist  2.1.0
LocalServiceAdmin.h
Go to the documentation of this file.
1 // -*- C++ -*-
19 #ifndef RTC_LOCALSERVICEADMIN_H
20 #define RTC_LOCALSERVICEADMIN_H
21 
22 #include <coil/Factory.h>
23 #include <coil/Singleton.h>
24 
25 #include <rtm/idl/SDOPackageStub.h>
26 #include <rtm/SystemLogger.h>
27 #include <rtm/LocalServiceBase.h>
28 
29 #include <string>
30 #include <vector>
31 
32 namespace RTM
33 {
34  // forward decl
35  class LocalServiceBase;
36  using ECNewFunc = LocalServiceBase* (*)();
37  using ECDeleteFunc = void (*)(LocalServiceBase*);
38 
62  : public coil::Singleton<LocalServiceAdmin>
63  {
64  public:
81 
97  virtual ~LocalServiceAdmin();
98 
114  void init(coil::Properties& props);
115 
131  void finalize();
132 
149 
176  bool getServiceProfile(const std::string& name,
177  ::RTM::LocalServiceProfile& prof);
178 
206 
221 
235  bool removeLocalService(const std::string& name);
236 
237  private:
245  bool isEnabled(const std::string& id, const coil::vstring& enabled);
246 
254  bool notExisting(const std::string& id);
255 
263  std::vector<LocalServiceBase*> m_services;
264  std::mutex m_services_mutex;
265 
273  ::RTC::Logger rtclog;
274  };
275 } // namespace RTM
276 
277 #endif // RTC_LOCALSERVICEADMIN_H
Local service provider base class and its factory.
RT component logger class.
Logger class.
Definition: SystemLogger.h:101
Definition: LocalServiceAdmin.h:63
LocalServiceAdmin()
Constructor.
void finalize()
Finalization ofLocalServiceAdmin.
bool removeLocalService(const std::string &name)
Remove a LocalService.
bool addLocalService(::RTM::LocalServiceBase *service)
Set a SDO service provider.
::RTM::LocalServiceProfileList getServiceProfiles()
Getting LocalServiceProfileList.
bool getServiceProfile(const std::string &name, ::RTM::LocalServiceProfile &prof)
Get LocalServiceProfile of an LocalService.
virtual ~LocalServiceAdmin()
Virtual destractor.
::RTM::LocalServiceBase * getService(const char *id)
Get a pointer of a LocalService.
void init(coil::Properties &props)
Initialization of LocalServiceAdmin.
Definition: LocalServiceBase.h:198
Profile data structure of LocalService.
Definition: LocalServiceBase.h:43
coil::Properties Properties
Definition: RTC.h:72
RT-Middleware.
Definition: FactoryInit.h:22
LocalServiceBase *(*)() ECNewFunc
Definition: LocalServiceAdmin.h:36
std::vector< LocalServiceProfile > LocalServiceProfileList
List of LocalServiceProfile.
Definition: LocalServiceBase.h:94
void(*)(LocalServiceBase *) ECDeleteFunc
Definition: LocalServiceAdmin.h:37