OpenRTM-aist  1.2.1
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/Mutex.h>
23 #include <coil/Factory.h>
24 #include <coil/Singleton.h>
25 
26 #include <rtm/idl/SDOPackageStub.h>
27 #include <rtm/SystemLogger.h>
28 #include <rtm/LocalServiceBase.h>
29 
30 namespace RTM
31 {
32  // forward decl
33  class LocalServiceBase;
34  typedef LocalServiceBase* (*ECNewFunc)();
35  typedef void (*ECDeleteFunc)(LocalServiceBase* ls);
37 
61  : public coil::Singleton<LocalServiceAdmin>
62  {
63  public:
80 
96  virtual ~LocalServiceAdmin();
97 
113  void init(coil::Properties& props);
114 
130  void finalize();
131 
148 
175  bool getServiceProfile(std::string name,
176  ::RTM::LocalServiceProfile& prof);
177 
204  ::RTM::LocalServiceBase* getService(const char* id);
205 
219  bool addLocalService(::RTM::LocalServiceBase* service);
220 
234  bool removeLocalService(const std::string name);
235 
236  private:
244  bool isEnabled(const std::string& id, const coil::vstring& enabled);
245 
253  bool notExisting(const std::string& id);
254 
262  std::vector<LocalServiceBase*> m_services;
263  coil::Mutex m_services_mutex;
264 
272  ::RTC::Logger rtclog;
273  };
274 }; // RTM
275 
276 #endif // RTC_LOCALSERVICEADMIN_H
virtual ~LocalServiceAdmin()
Virtual destractor.
void init(coil::Properties &props)
Initialization of LocalServiceAdmin.
Profile data structure of LocalService.
Definition: LocalServiceBase.h:42
Mutex class.
Definition: Mutex.h:40
RT component logger class.
bool getServiceProfile(std::string name,::RTM::LocalServiceProfile &prof)
Get LocalServiceProfile of an LocalService.
::RTM::LocalServiceProfileList getServiceProfiles()
Getting LocalServiceProfileList.
coil::Guard< coil::Mutex > Guard
Definition: LocalServiceAdmin.h:36
Definition: LocalServiceBase.h:189
std::vector< std::string > vstring
Definition: stringutil.h:45
::RTM::LocalServiceBase * getService(const char *id)
Get a pointer of a LocalService.
Singleton template class.
Singleton template class.
Definition: Singleton.h:106
bool addLocalService(::RTM::LocalServiceBase *service)
Set a SDO service provider.
Local service provider base class and its factory.
Logger class.
Definition: SystemLogger.h:99
LocalServiceAdmin()
Constructor.
Class represents a set of properties.
Definition: Properties.h:101
Definition: LocalServiceAdmin.h:60
bool removeLocalService(const std::string name)
Remove a LocalService.
void finalize()
Finalization ofLocalServiceAdmin.
void(* ECDeleteFunc)(LocalServiceBase *ls)
Definition: LocalServiceAdmin.h:35
RT-Middleware.
Definition: ListenerHolder.h:28
std::vector< LocalServiceProfile > LocalServiceProfileList
List of LocalServiceProfile.
Definition: LocalServiceBase.h:86