OpenRTM  1.0.0
ManagerServant.h
[詳解]
1 // -*- C++ -*-
20 #ifndef RTM_MANAGERSERVANT_H
21 #define RTM_MANAGERSERVANT_H
22 
23 #include <iostream>
24 #include <coil/Mutex.h>
25 #include <coil/Guard.h>
26 #include <rtm/idl/ManagerSkel.h>
27 #include <rtm/Manager.h>
28 #include <rtm/SystemLogger.h>
29 
45 namespace RTM
46 {
64  : public virtual POA_RTM::Manager,
65  public virtual PortableServer::RefCountServantBase
66  {
67  public:
81  // standard constructor
83 
95  virtual ~ManagerServant(void);
96 
121  RTC::ReturnCode_t load_module(const char* pathname, const char* initfunc);
122 
142  RTC::ReturnCode_t unload_module(const char* pathname);
143 
161  RTM::ModuleProfileList* get_loadable_modules();
162 
180  RTM::ModuleProfileList* get_loaded_modules();
181 
182  // component 関連
202  RTM::ModuleProfileList* get_factory_profiles();
203 
222  RTC::RTObject_ptr create_component(const char* module_name);
223 
242  RTC::ReturnCode_t delete_component(const char* instance_name);
243 
261  RTC::RTCList* get_components();
262 
282  RTC::ComponentProfileList* get_component_profiles();
283 
284  // manager 基本
302  RTM::ManagerProfile* get_profile();
303 
321  RTM::NVList* get_configuration();
322 
344  RTC::ReturnCode_t set_configuration(const char* name, const char* value);
345 
365  ::CORBA::Boolean is_master();
366 
388  RTM::ManagerList* get_master_managers();
389 
413  RTC::ReturnCode_t add_master_manager(RTM::Manager_ptr mgr);
414 
434  RTC::ReturnCode_t remove_master_manager(RTM::Manager_ptr mgr);
435 
457  RTM::ManagerList* get_slave_managers();
458 
478  RTC::ReturnCode_t add_slave_manager(RTM::Manager_ptr mgr);
479 
499  RTC::ReturnCode_t remove_slave_manager(RTM::Manager_ptr mgr);
500 
501 
502 
512  RTC::ReturnCode_t fork();
522  RTC::ReturnCode_t shutdown();
532  RTC::ReturnCode_t restart();
533 
543  CORBA::Object_ptr get_service(const char* name);
544 
554  RTM::Manager_ptr getObjRef() const;
555 
565  bool createINSManager();
566 
576  RTM::Manager_ptr findManager(const char* host_port);
577 
578  private:
587  ::RTC::Logger rtclog;
588 
596  ::RTC::Manager& m_mgr;
597 
605  ::RTM::Manager_var m_objref;
606 
614  ::RTM::ManagerList m_masters;
615 
623  ::coil::Mutex m_masterMutex;
624 
632  ::RTM::ManagerList m_slaves;
633 
641  ::coil::Mutex m_slaveMutex;
642 
650  CORBA::Boolean m_isMaster;
651 
659  class is_equiv
660  {
661  RTM::Manager_var m_mgr;
662  public:
663  is_equiv(RTM::Manager_ptr mgr)
664  : m_mgr(RTM::Manager::_duplicate(mgr)) {}
665  bool operator()(RTM::Manager_ptr mgr)
666  {
667  return m_mgr->_is_equivalent(mgr);
668  }
669  };
670 
671  };
672 }; // namespace RTM
673 #endif // RTM_MANAGERSERVANT_H
RTC::RTCList * get_components()
起動中のコンポーネントのリストを取得する
bool createINSManager()
INSManagerの生成
Mutex クラス
Definition: Mutex.h:40
RT component logger class.
ManagerのCORBA化クラス
Definition: ManagerServant.h:63
virtual ~ManagerServant(void)
仮想デストラクタ
CORBA::Object_ptr get_service(const char *name)
RTCのリファレンスを取得する。
RTC::ReturnCode_t shutdown()
shutdownする
Manager クラス
Definition: Manager.h:80
RTM::ManagerList * get_master_managers()
マスターマネージャの取得
RTC::RTObject_ptr create_component(const char *module_name)
コンポーネントを生成する
RTComponent manager class.
RTM::Manager_ptr findManager(const char *host_port)
Managerのリファレンスを検索する。
RTC::ReturnCode_t remove_slave_manager(RTM::Manager_ptr mgr)
スレーブマネージャの削除
RTC::ReturnCode_t set_configuration(const char *name, const char *value)
マネージャのコンフィギュレーションを設定する
RTM::ModuleProfileList * get_loadable_modules()
ロード可能なモジュールのプロファイルを取得する
RTC::ReturnCode_t delete_component(const char *instance_name)
コンポーネントを削除する
RTC::ReturnCode_t load_module(const char *pathname, const char *initfunc)
モジュールをロードする
RTC::ReturnCode_t remove_master_manager(RTM::Manager_ptr mgr)
マスターマネージャの削除
Guard template class.
::CORBA::Boolean is_master()
マネージャがマスターかどうか
RTC::ReturnCode_t restart()
再起動する。
Logger クラス
Definition: SystemLogger.h:99
RTM::ModuleProfileList * get_factory_profiles()
コンポーネントファクトリのプロファイルを取得する
RTC::ReturnCode_t unload_module(const char *pathname)
モジュールをアンロードする
RTC::ReturnCode_t add_master_manager(RTM::Manager_ptr mgr)
マスターマネージャの追加
RTM::ManagerList * get_slave_managers()
スレーブマネージャの取得
RTM::Manager_ptr getObjRef() const
Managerのリファレンスを取得する。
ManagerServant()
コンストラクタ
RTM::ManagerProfile * get_profile()
マネージャのプロファイルを取得する
RTC::ComponentProfileList * get_component_profiles()
起動中のコンポーネントプロファイルのリストを取得する
RTC::ReturnCode_t add_slave_manager(RTM::Manager_ptr mgr)
スレーブマネージャの追加
RTM::NVList * get_configuration()
マネージャのコンフィギュレーションを取得する
RT-Middleware.
Definition: Manager.h:38
RTM::ModuleProfileList * get_loaded_modules()
ロード済みのモジュールのプロファイルを取得する
RTC::ReturnCode_t fork()
プロセスのコピーを生成する