OpenRTM-aist  2.1.0
LocalServiceAdmin.h
[詳解]
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 クラス
Definition: SystemLogger.h:101
Definition: LocalServiceAdmin.h:63
LocalServiceAdmin()
コンストラクタ
void finalize()
LocalserviceAdmin の終了処理
bool removeLocalService(const std::string &name)
LocalService を削除する
bool addLocalService(::RTM::LocalServiceBase *service)
SDO service provider をセットする
::RTM::LocalServiceProfileList getServiceProfiles()
LocalServiceProfileListの取得
bool getServiceProfile(const std::string &name, ::RTM::LocalServiceProfile &prof)
LocalServiceProfile を取得する
virtual ~LocalServiceAdmin()
仮想デストラクタ
::RTM::LocalServiceBase * getService(const char *id)
LocalService の Service を取得する
void init(coil::Properties &props)
LocaServiceAdminの初期化
LocalService 基底クラス
Definition: LocalServiceBase.h:198
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
LocalServiceのリスト
Definition: LocalServiceBase.h:94
void(*)(LocalServiceBase *) ECDeleteFunc
Definition: LocalServiceAdmin.h:37