OpenRTM-aist  2.1.0
CORBA_RTCUtil.h
[詳解]
1 // -*- C++ -*-
18 #ifndef CORBA_RTCUTIL_H
19 #define CORBA_RTCUTIL_H
20 
21 #include <rtm/RTC.h>
22 #include <rtm/NVUtil.h>
23 #include <rtm/CORBA_SeqUtil.h>
24 #include <rtm/RTObject.h>
25 
26 #include <utility>
27 
28 
29 namespace CORBA_RTCUtil
30 {
165  coil::Properties get_component_profile(const RTC::RTObject_ptr rtc);
177  bool is_existing(const RTC::RTObject_ptr rtc);
189  bool is_alive_in_default_ec(const RTC::RTObject_ptr rtc);
190 
191 
205  RTC::ExecutionContext_ptr get_actual_ec(const RTC::RTObject_ptr rtc,
206  const RTC::UniqueId ec_id = 0);
207 
223  RTC::UniqueId get_ec_id(const RTC::RTObject_ptr rtc,
224  const RTC::ExecutionContext_ptr ec);
225 
241  RTC::ReturnCode_t activate(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id = 0);
242 
258  RTC::ReturnCode_t deactivate(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id = 0);
259 
275  RTC::ReturnCode_t reset(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id = 0);
276 
277 
278 
295  bool get_state(RTC::LifeCycleState &state, const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id = 0);
296 
297 
313  bool is_in_inactive(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id = 0);
314 
315 
330  bool is_in_active(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id = 0);
331 
332 
347  bool is_in_error(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id = 0);
348 
349 
350 
362  CORBA::Double get_default_rate(const RTC::RTObject_ptr rtc);
363 
364 
379  RTC::ReturnCode_t set_default_rate(const RTC::RTObject_ptr rtc,
380  CORBA::Double rate);
381 
382 
396  CORBA::Double get_current_rate(const RTC::RTObject_ptr rtc,
397  const RTC::UniqueId ec_id);
398 
415  RTC::ReturnCode_t set_current_rate(const RTC::RTObject_ptr rtc,
416  const RTC::UniqueId ec_id,
417  const CORBA::Double rate);
418 
419 
434  RTC::ReturnCode_t add_rtc_to_default_ec(const RTC::RTObject_ptr localcomp,
435  const RTC::RTObject_ptr othercomp);
436 
437 
452  RTC::ReturnCode_t remove_rtc_to_default_ec(const RTC::RTObject_ptr localcomp,
453  const RTC::RTObject_ptr othercomp);
454 
455 
468  RTC::RTCList get_participants_rtc(const RTC::RTObject_ptr rtc);
469 
470 
471 
483  coil::vstring get_port_names(const RTC::RTObject_ptr rtc);
484 
485 
497  coil::vstring get_inport_names(const RTC::RTObject_ptr rtc);
498 
499 
511  coil::vstring get_outport_names(const RTC::RTObject_ptr rtc);
512 
513 
525  coil::vstring get_svcport_names(const RTC::RTObject_ptr rtc);
526 
527 
539  coil::vstring get_connector_names(const RTC::PortService_ptr port);
540 
541 
555  coil::vstring get_connector_names(const RTC::RTObject_ptr rtc,
556  const std::string& port_name);
557 
569  coil::vstring get_connector_ids(const RTC::PortService_ptr port);
570 
571 
585  coil::vstring get_connector_ids(const RTC::RTObject_ptr rtc,
586  const std::string& port_name);
587 
588 
606  RTC::ConnectorProfile* create_connector(const std::string& name,
607  const coil::Properties& prop_arg,
608  const RTC::PortService_ptr port0,
609  const RTC::PortService_ptr port1);
610 
624  bool already_connected(const RTC::PortService_ptr localport,
625  const RTC::PortService_ptr otherport);
626 
645  RTC::ReturnCode_t connect(const std::string& name,
646  const coil::Properties& prop,
647  const RTC::PortService_ptr port0,
648  const RTC::PortService_ptr port1);
649 
650 
664  RTC::ReturnCode_t disconnect(const RTC::ConnectorProfile connector_prof);
665 
666 
681  RTC::ReturnCode_t disconnect_connector_name(const RTC::PortService_ptr port_ref, const std::string& conn_name);
682 
683 
684 
699  RTC::ReturnCode_t disconnect_connector_name(const std::string& port_name,
700  const std::string& conn_name);
701 
702 
717  RTC::ReturnCode_t
718  disconnect_connector_id(const RTC::PortService_ptr port_ref,
719  const std::string& conn_id);
720 
721 
736  RTC::ReturnCode_t disconnect_connector_id(const std::string& port_name,
737  const std::string& conn_id);
738 
751  RTC::ReturnCode_t disconnect_all(const RTC::PortService_ptr port_ref);
752 
753 
766  RTC::ReturnCode_t disconnect_all(const std::string& port_name);
767 
780  RTC::PortService_ptr get_port_by_url(const std::string& port_name);
781 
798  RTC::ReturnCode_t disconnect_name(const RTC::PortService_ptr localport,
799  const std::string& othername);
818  RTC::ReturnCode_t connect_multi(const std::string& name,
819  const coil::Properties& prop,
820  const RTC::PortService_ptr port,
821  RTC::PortServiceList& target_ports);
829  struct find_port
830  {
831  const std::string m_name;
841  find_port(std::string name) : m_name(std::move(name)) {}
853  bool operator()(const RTC::PortService_ptr p);
854  };
855 
869  RTC::PortService_ptr get_port_by_name(const RTC::RTObject_ptr rtc,
870  const std::string& name);
871 
894  RTC::ReturnCode_t connect_by_name(const std::string& name, const coil::Properties& prop,
895  const RTC::RTObject_ptr rtc0,
896  const std::string& portName0,
897  const RTC::RTObject_ptr rtc1,
898  const std::string& portName1);
899 
913  coil::Properties get_configuration(const RTC::RTObject_ptr rtc, const std::string& conf_name);
914 
915 
932  std::string get_parameter_by_key(const RTC::RTObject_ptr rtc,
933  const std::string& confset_name,
934  const std::string& value_name);
935 
948  std::string get_active_configuration_name(const RTC::RTObject_ptr rtc);
949 
950 
951 
963  coil::Properties get_active_configuration(const RTC::RTObject_ptr rtc);
964 
965 
983  bool set_configuration(const RTC::RTObject_ptr rtc, const std::string& confset_name, const std::string& value_name, const std::string& value);
984 
985 
986 
1002  bool set_active_configuration(const RTC::RTObject_ptr rtc, const std::string& value_name, const std::string& value);
1003 
1004 
1023  bool set_configuration_parameter(SDOPackage::Configuration_ptr conf,
1024  SDOPackage::ConfigurationSet& confset,
1025  const std::string& value_name,
1026  const std::string& value);
1041  class CorbaURI
1042  {
1043  public:
1088  CorbaURI(std::string uri, const std::string &objkey="");
1121  std::string toString() const;
1139  std::string getProtocol() const;
1156  std::string getHost() const;
1173  unsigned short getPort() const;
1191  bool isAddressOnly() const;
1192  private:
1193  std::string m_protocol;
1194  std::string m_host;
1195  unsigned short m_port;
1196  std::string m_path;
1197  std::string m_fragment;
1198  std::string m_uri;
1199  bool m_addressonly;
1200  };
1201 
1234  {
1235  public:
1261  RTCURIObject(const std::string& uri, bool isrtcname=false, bool isrtcloc=false);
1300  std::string getRTCName() const;
1319  std::string getAddress() const;
1336  bool isRTCNameURI() const;
1353  bool isRTCLocURI() const;
1354  private:
1355  std::string m_rtcpath;
1356  std::string m_address;
1357  bool m_is_rtcname;
1358  bool m_is_rtcloc;
1359  };
1360 
1361 
1362 } // namespace CORBA_RTCUtil
1363 #endif // CORBA_SEQUTIL_H
CORBA sequence utility template functions
NameValue and NVList utility functions
RTComponent header
RT component base class
CorbaURI クラス 指定のCORBAオブジェクト参照用URLから参照形式、ホスト名、ポート番号、 パス、オブジェクトキーを取得する機能を提供するクラス
Definition: CORBA_RTCUtil.h:1042
bool isAddressOnly() const
初期化時にCORBAオブジェクト参照用URLを指定した場合はfalse、 ホスト名、ポート番号のみを指定した場合はtrueを返す。
std::string getHost() const
ホスト名を取得する
std::string getProtocol() const
参照形式を取得する 例:corbaloc、corbaname、http、https、ws、wss
unsigned short getPort() const
ポート番号を取得する
~CorbaURI()
デストラクタ
std::string toString() const
CORBAオブジェクト参照用URLを取得する
CorbaURI(std::string uri, const std::string &objkey="")
コンストラクタ
RTCURIObject クラス rtcname形式、rtcloc形式のURIから通信先のアドレス、RTC名等を 取得する機能を提供するクラス rtcname形式は以下のようにrtcname....
Definition: CORBA_RTCUtil.h:1234
std::string getAddress() const
通信先のアドレスを取得する
std::string getRTCName() const
RTC名を取得する
bool isRTCLocURI() const
URIがrtcloc形式かを判定する
~RTCURIObject()
デストラクタ
bool isRTCNameURI() const
URIがrtcname形式かを判定する
RTCURIObject(const std::string &uri, bool isrtcname=false, bool isrtcloc=false)
コンストラクタ
Definition: CORBA_RTCUtil.h:30
bool set_active_configuration(const RTC::RTObject_ptr rtc, const std::string &value_name, const std::string &value)
アクティブなコンフィギュレーションセットのパラメータを設定
RTC::UniqueId get_ec_id(const RTC::RTObject_ptr rtc, const RTC::ExecutionContext_ptr ec)
対象のRTコンポーネントから指定した実行コンテキストのIDを取得する
CORBA::Double get_default_rate(const RTC::RTObject_ptr rtc)
RTCのデフォルトの実行コンテキストの実行周期を取得する
RTC::ConnectorProfile * create_connector(const std::string &name, const coil::Properties &prop_arg, const RTC::PortService_ptr port0, const RTC::PortService_ptr port1)
指定したポートを接続するためのコネクタプロファイルを取得
bool set_configuration(const RTC::RTObject_ptr rtc, const std::string &confset_name, const std::string &value_name, const std::string &value)
コンフィギュレーションパラメータを設定
coil::Properties get_configuration(const RTC::RTObject_ptr rtc, const std::string &conf_name)
対象RTCの指定した名前のコンフィギュレーションセットをkey-valueで取得
coil::vstring get_svcport_names(const RTC::RTObject_ptr rtc)
指定したRTCの保持するサービスポートの名前を取得
bool get_state(RTC::LifeCycleState &state, const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id=0)
対象のRTコンポーネントの指定した実行コンテキストでの状態を取得
RTC::ReturnCode_t disconnect_connector_name(const RTC::PortService_ptr port_ref, const std::string &conn_name)
対象のポートで指定した名前のコネクタを切断
coil::Properties get_active_configuration(const RTC::RTObject_ptr rtc)
アクティブなコンフィギュレーションセットをkey-valueで取得する
RTC::ReturnCode_t set_default_rate(const RTC::RTObject_ptr rtc, CORBA::Double rate)
RTCのデフォルトの実行コンテキストの実行周期を設定する
std::string get_active_configuration_name(const RTC::RTObject_ptr rtc)
対象のRTCのアクティブなコンフィギュレーションセット名を取得する
coil::vstring get_port_names(const RTC::RTObject_ptr rtc)
指定したRTCの保持するポートの名前を取得
RTC::ReturnCode_t disconnect_all(const RTC::PortService_ptr port_ref)
対象のポートのコネクタを全て切断
RTC::ReturnCode_t activate(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id=0)
RTCを指定した実行コンテキストでアクティベーションする
coil::vstring get_outport_names(const RTC::RTObject_ptr rtc)
指定したRTCの保持するアウトポートの名前を取得
RTC::ReturnCode_t set_current_rate(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id, const CORBA::Double rate)
RTCの指定IDの実行コンテキストの周期を設定
bool is_alive_in_default_ec(const RTC::RTObject_ptr rtc)
RTCがデフォルトの実行コンテキストでalive状態かを判定する
coil::Properties get_component_profile(const RTC::RTObject_ptr rtc)
RTC操作ユーティリティー関数群
RTC::ReturnCode_t connect_by_name(const std::string &name, const coil::Properties &prop, const RTC::RTObject_ptr rtc0, const std::string &portName0, const RTC::RTObject_ptr rtc1, const std::string &portName1)
対象のRTCの指定した名前のポートを接続する
RTC::RTCList get_participants_rtc(const RTC::RTObject_ptr rtc)
RTCのデフォルトの実行コンテキストに参加しているRTCのリストを取得する 実行コンテキストがnilの場合は空のリストを返す
RTC::ReturnCode_t disconnect_connector_id(const RTC::PortService_ptr port_ref, const std::string &conn_id)
対象のポートで指定したIDのコネクタを切断
std::string get_parameter_by_key(const RTC::RTObject_ptr rtc, const std::string &confset_name, const std::string &value_name)
指定したコンフィギュレーションセット名、パラメータ名のコン フィギュレーションパラメータを取得
RTC::ReturnCode_t disconnect_name(const RTC::PortService_ptr localport, const std::string &othername)
対象ポートと接続しているポートで指定したポート名と一致した場合に切断
RTC::ExecutionContext_ptr get_actual_ec(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id=0)
RTコンポーネントに関連付けした実行コンテキストから指定したIDの実行コンテキストを取得
RTC::ReturnCode_t connect_multi(const std::string &name, const coil::Properties &prop, const RTC::PortService_ptr port, RTC::PortServiceList &target_ports)
指定したポートと指定したリスト内のポート全てと接続する
bool is_in_active(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id=0)
対象のRTコンポーネントの指定したECでACTIVE状態かどうか判定
RTC::PortService_ptr get_port_by_name(const RTC::RTObject_ptr rtc, const std::string &name)
対象のRTCから指定した名前のポートを取得
bool set_configuration_parameter(SDOPackage::Configuration_ptr conf, SDOPackage::ConfigurationSet &confset, const std::string &value_name, const std::string &value)
コンフィギュレーションパラメータの設定
RTC::ReturnCode_t connect(const std::string &name, const coil::Properties &prop, const RTC::PortService_ptr port0, const RTC::PortService_ptr port1)
指定したポートを接続する
bool is_existing(const RTC::RTObject_ptr rtc)
コンポーネントのオブジェクトリファレンスが存在しているかを判定
RTC::ReturnCode_t deactivate(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id=0)
RTCを指定した実行コンテキストで非アクティベーションする
coil::vstring get_connector_names(const RTC::PortService_ptr port)
指定したポートの保持しているコネクタの名前のリストを取得
bool is_in_error(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id=0)
対象のRTコンポーネントの指定したECでERROR状態かどうか判定
coil::vstring get_connector_ids(const RTC::PortService_ptr port)
指定したポートの保持しているコネクタのIDのリストを取得
bool already_connected(const RTC::PortService_ptr localport, const RTC::PortService_ptr otherport)
指定したポート同士が接続されているかを判定
RTC::PortService_ptr get_port_by_url(const std::string &port_name)
指定した名前のポートを取得
coil::vstring get_inport_names(const RTC::RTObject_ptr rtc)
指定したRTCの保持するインポートの名前を取得
RTC::ReturnCode_t reset(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id=0)
RTCを指定した実行コンテキストでリセットする
RTC::ReturnCode_t add_rtc_to_default_ec(const RTC::RTObject_ptr localcomp, const RTC::RTObject_ptr othercomp)
対象のRTCのデフォルトの実行コンテキストに指定のRTCを関連付ける
RTC::ReturnCode_t disconnect(const RTC::ConnectorProfile connector_prof)
対象のRTCの指定したポートのコネクタのIDのリストを取得
CORBA::Double get_current_rate(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id)
RTCの指定IDの実行コンテキストの周期を取得
bool is_in_inactive(const RTC::RTObject_ptr rtc, const RTC::UniqueId ec_id=0)
対象のRTコンポーネントの指定したECでINACTIVE状態かどうか判定
RTC::ReturnCode_t remove_rtc_to_default_ec(const RTC::RTObject_ptr localcomp, const RTC::RTObject_ptr othercomp)
対象のRTCのデフォルトのECの指定のRTCへの関連付けを解除する
ExecutionContextHandle_t UniqueId
Definition: ComponentActionListener.h:34
coil::Properties Properties
Definition: RTC.h:72
ポートを名前から検索
Definition: CORBA_RTCUtil.h:830
find_port(std::string name)
検索するポート名を指定する
Definition: CORBA_RTCUtil.h:841
const std::string m_name
Definition: CORBA_RTCUtil.h:831
bool operator()(const RTC::PortService_ptr p)
対象のポートの名前と指定したポート名が一致するか判定