20 #ifndef RTC_PORTBASE_H 21 #define RTC_PORTBASE_H 29 #include <rtm/idl/RTCSkel.h> 37 #pragma warning( disable : 4290 ) 42 class ConnectionCallback;
135 :
public virtual POA_RTC::PortService,
136 public virtual PortableServer::RefCountServantBase
237 throw (CORBA::SystemException);
319 throw (CORBA::SystemException);
361 throw (CORBA::SystemException);
520 virtual ReturnCode_t
connect(ConnectorProfile& connector_profile)
521 throw (CORBA::SystemException);
638 virtual ReturnCode_t
notify_connect(ConnectorProfile& connector_profile)
639 throw (CORBA::SystemException);
706 virtual ReturnCode_t
disconnect(
const char* connector_id)
707 throw (CORBA::SystemException);
798 throw (CORBA::SystemException);
820 throw (CORBA::SystemException);
880 void setName(
const char* name);
1345 virtual ReturnCode_t
1374 virtual ReturnCode_t
connectNext(ConnectorProfile& connector_profile);
1402 virtual ReturnCode_t
disconnectNext(ConnectorProfile& connector_profile);
1467 virtual ReturnCode_t
1577 bool isEmptyId(
const ConnectorProfile& connector_profile)
const;
1598 const std::string
getUUID()
const;
1619 void setUUID(ConnectorProfile& connector_profile)
const;
1819 PortInterfacePolarity pol);
1875 template <
class ValueType>
1949 #ifndef ORB_IS_RTORB 1950 bool checkPorts(::RTC::PortServiceList& ports);
1951 #else // ORB_IS_RTORB 1953 #endif // ORB_IS_RTORB 1957 RTC::ConnectorProfile& profile)
1967 RTC::ConnectorProfile& profile)
1976 RTC::ConnectorProfile& profile)
1986 RTC::ConnectorProfile& profile,
1998 RTC::ConnectorProfile& profile,
2010 RTC::ConnectorProfile& profile,
2022 RTC::ConnectorProfile& profile,
2028 portconnret_[
ON_CONNECTED].notify(portname, profile, ret);
2033 RTC::ConnectorProfile& profile,
2044 RTC::ConnectorProfile& profile,
2228 return m_id == std::string(cprof.connector_id);
2245 return m_port->_is_equivalent(port_ref);
2260 : m_name(name), m_pol(pol)
2265 CORBA::String_var name(CORBA::string_dup(prof.instance_name));
2266 return ((m_name == (
const char *)name) && (m_pol == prof.polarity));
2275 #pragma warning( default : 4290 ) 2278 #endif // RTC_PORTBASE_H SDOPackage::NameValue newNV(const char *name, Value value)
NameValue を生成する
Definition: NVUtil.h:79
Definition: PortConnectListener.h:163
void setOnSubscribeInterfaces(ConnectionCallback *on_subscribe)
インターフェースを取得する際に呼ばれるコールバックをセットする ...
bool isEmptyId(const ConnectorProfile &connector_profile) const
ConnectorProfile の connector_id フィールドが空かどうか判定
void onPublishInterfaces(const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
Definition: PortBase.h:1985
coil::Guard< coil::Mutex > Guard
Definition: PortBase.h:2089
const PortProfile & getProfile() const
PortProfileを取得する
virtual ReturnCode_t connect(ConnectorProfile &connector_profile)
[CORBA interface] Port の接続を行う
PortInterfacePolarity m_pol
Definition: PortBase.h:2269
void setUUID(ConnectorProfile &connector_profile) const
UUIDを生成し ConnectorProfile にセットする
Definition: PortConnectListener.h:51
std::string m_ownerInstanceName
インスタンス名
Definition: PortBase.h:2098
virtual ReturnCode_t _publishInterfaces(void)
Interface情報を公開する
bool operator()(const PortInterfaceProfile &prof)
Definition: PortBase.h:2263
ConnectionCallback * m_onSubscribeInterfaces
Callback functor オブジェクト
Definition: PortBase.h:2137
ConnectionCallback * m_onUnsubscribeInterfaces
Callback functor オブジェクト
Definition: PortBase.h:2166
void onNotifyConnect(const char *portname, RTC::ConnectorProfile &profile)
Definition: PortBase.h:1956
Mutex クラス
Definition: Mutex.h:40
RT component logger class.
void onDisconnectNextport(const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
Definition: PortBase.h:2032
find_interface(const char *name, PortInterfacePolarity pol)
Definition: PortBase.h:2259
PortService_ptr getPortRef()
Port のオブジェクト参照を取得する
coil::Mutex m_connectorsMutex
Definition: PortBase.h:2088
coil::Mutex m_profile_mutex
PortProfile の mutex.
Definition: PortBase.h:2087
id を持つ ConnectorProfile を探す Functor
Definition: PortBase.h:2223
bool appendStringValue(SDOPackage::NVList &nv, const char *name, const char *value)
指定された文字列を NVList の要素に追加する。
Definition: PortConnectListener.h:168
void setOnPublishInterfaces(ConnectionCallback *on_publish)
インターフェースを公開する際に呼ばれるコールバックをセットする ...
ConnectionCallback * m_onDisconnected
Callback functor オブジェクト
Definition: PortBase.h:2180
void onDisconnected(const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
Definition: PortBase.h:2043
void setOnConnected(ConnectionCallback *on_connected)
接続完了時に呼ばれるコールバックをセットする
virtual void setConnectionLimit(int limit_value)
接続の最大数を設定する。
Definition: PortConnectListener.h:52
void setOwner(RTObject_ptr owner)
Port の owner の RTObject を指定する
bool deleteInterface(const char *name, PortInterfacePolarity pol)
PortInterfaceProfile からインターフェース登録を削除する
virtual ReturnCode_t connectNext(ConnectorProfile &connector_profile)
次の Port に対して notify_connect() をコールする
bool operator()(PortService_ptr port_ref)
Definition: PortBase.h:2243
const char * getName() const
Port の名前を取得する
void setOnUnsubscribeInterfaces(ConnectionCallback *on_subscribe)
インターフェースを解放する際に呼ばれるコールバックをセットする ...
virtual PortProfile * get_port_profile()
[CORBA interface] PortProfileを取得する
name と polarity から interface を探す Functor
Definition: PortBase.h:2257
virtual ReturnCode_t notify_disconnect(const char *connector_id)
[CORBA interface] Port の接続解除通知を行う
std::string m_id
Definition: PortBase.h:2230
virtual void activateInterfaces()=0
Port の全てのインターフェースを activates する
virtual ConnectorProfileList * get_connector_profiles()
[CORBA interface] ConnectorProfileListを取得する
void setPortRef(PortService_ptr port_ref)
Port のオブジェクト参照を設定する
virtual ReturnCode_t disconnect_all()
[CORBA interface] Port の全接続を解除する
bool operator()(const ConnectorProfile &cprof)
Definition: PortBase.h:2226
void onConnectNextport(const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
Definition: PortBase.h:1997
void appendProperty(const char *key, const char *value)
PortProfile の properties に NameValue 値を要素に追加する
Definition: PortBase.h:1907
ConnectionCallback * m_onConnected
Callback functor オブジェクト
Definition: PortBase.h:2152
Port の基底クラス
Definition: PortBase.h:134
void setPortConnectListenerHolder(PortConnectListeners *portconnListeners)
PortConnectListeners のホルダをセットする
PortService_ptr m_port
Definition: PortBase.h:2247
PortConnectListeners クラス
Definition: PortConnectListener.h:487
std::string m_name
Definition: PortBase.h:2268
NameValue and NVList utility functions.
Definition: PortConnectListener.h:166
PortBase(const char *name="")
コンストラクタ
CORBA sequence utility template functions.
void onConnected(const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
Definition: PortBase.h:2021
CORBA::Long findConnProfileIndex(const char *id)
id を持つ ConnectorProfile を探す
Logger クラス
Definition: SystemLogger.h:99
void setOnConnectionLost(ConnectionCallback *on_connection_lost)
ポートの接続がロストした場合に呼び出されるコールバックをセットする ...
virtual void unsubscribeInterfaces(const ConnectorProfile &connector_profile)=0
Interface の接続を解除する
void updateConnectors()
存在しないポートをdisconnectする。
virtual ReturnCode_t disconnect(const char *connector_id)
[CORBA interface] Port の接続を解除する
Definition: PortConnectListener.h:165
PortProfile m_profile
Port の PortProfile.
Definition: PortBase.h:2070
virtual ReturnCode_t publishInterfaces(ConnectorProfile &connector_profile)=0
Interface 情報を公開する
PortConnectListeners * m_portconnListeners
PortConnectListenerホルダ
Definition: PortBase.h:2211
bool eraseConnectorProfile(const char *id)
ConnectorProfile を削除する
find_conn_id(const char *id)
Definition: PortBase.h:2225
Definition: PortConnectListener.h:167
virtual ReturnCode_t notify_connect(ConnectorProfile &connector_profile)
[CORBA interface] Port の接続通知を行う
void onUnsubscribeInterfaces(const char *portname, RTC::ConnectorProfile &profile)
Definition: PortBase.h:1975
bool isExistingConnId(const char *id)
id が既存の ConnectorProfile のものかどうか判定する
virtual void deactivateInterfaces()=0
全ての Port のインターフェースを deactivates する
virtual ReturnCode_t disconnectNext(ConnectorProfile &connector_profile)
次の Port に対して notify_disconnect() をコールする
bool appendInterface(const char *name, const char *type_name, PortInterfacePolarity pol)
PortInterfaceProfile に インターフェースを登録する
virtual ReturnCode_t subscribeInterfaces(const ConnectorProfile &connector_profile)=0
Interface 情報を公開する
void onSubscribeInterfaces(const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
Definition: PortBase.h:2009
void onNotifyDisconnect(const char *portname, RTC::ConnectorProfile &profile)
Definition: PortBase.h:1966
int m_connectionLimit
Port の接続の最大数
Definition: PortBase.h:2107
RTC::PortService_var m_objref
Port の オブジェクト参照
Definition: PortBase.h:2079
void push_back(CorbaSequence &seq, SequenceElement elem)
CORBA sequence の最後に要素を追加する
Definition: CORBA_SeqUtil.h:175
Definition: PortConnectListener.h:53
ConnectionCallback * m_onConnectionLost
Callback functor オブジェクト
Definition: PortBase.h:2196
find_port_ref(PortService_ptr port_ref)
Definition: PortBase.h:2242
const std::string getUUID() const
UUIDを生成する
void addProperty(const char *key, ValueType value)
PortProfile の properties に NameValue 値を追加する
Definition: PortBase.h:1876
ConnectionCallback * m_onPublishInterfaces
Callback functor オブジェクト
Definition: PortBase.h:2123
bool checkPorts(::RTC::PortServiceList &ports)
ポートの存在を確認する。
const PortProfile & getPortProfile() const
PortProfile を取得する。
コンストラクタ引数 port_ref と同じオブジェクト参照を探す Functor ...
Definition: PortBase.h:2240
void updateConnectorProfile(const ConnectorProfile &connector_profile)
ConnectorProfile の追加もしくは更新
connect/notify_connect() 時のコールバック抽象クラス
Definition: PortCallback.h:55
void setName(const char *name)
Port の名前を設定する
ConnectorProfile findConnProfile(const char *id)
id を持つ ConnectorProfile を探す
port's internal action listener classes
Definition: PortConnectListener.h:164
virtual ConnectorProfile * get_connector_profile(const char *connector_id)
[CORBA interface] ConnectorProfile を取得する
void setOnDisconnected(ConnectionCallback *on_disconnected)
接続解除に呼ばれるコールバックをセットする
Logger rtclog
ロガーストリーム
Definition: PortBase.h:2062
virtual ~PortBase(void)
デストラクタ