OpenRTM-aist-Python 1.1.2
クラス | 公開メンバ関数 | 全メンバ一覧
OpenRTM_aist.OutPortBase.OutPortBase クラス

OutPort 基底クラス [詳解]

OpenRTM_aist.OutPortBase.OutPortBase の継承関係図
OpenRTM_aist.PortBase.PortBase OpenRTM_aist.DataPortStatus.DataPortStatus OpenRTM_aist.OutPort.OutPort

クラス

class  connector_cleanup
 Connector を削除するための Functor. [詳解]
 
class  provider_cleanup
 Provider を削除するための Functor. [詳解]
 

公開メンバ関数

def __init__ (self, name, data_type)
 コンストラクタ [詳解]
 
def __del__ (self, PortBase=OpenRTM_aist.PortBase)
 デストラクタ [詳解]
 
def init (self, prop)
 プロパティの初期化 [詳解]
 
def write (self)
 データ書き込み [詳解]
 
def connect (self, connector_profile)
 [CORBA interface] Port の接続を行う [詳解]
 
def properties (self)
 プロパティを取得する [詳解]
 
def connectors (self)
 Connector を取得const std::vector<OutPortConnector*>& OutPortBase::connectors()
 
def getConnectorProfiles (self)
 ConnectorProfile を取得ConnectorBase::ConnectorInfoList OutPortBase::getConnectorProfiles()
 
def getConnectorIds (self)
 ConnectorId を取得coil::vstring OutPortBase::getConnectorIds()
 
def getConnectorNames (self)
 Connectorの名前を取得coil::vstring OutPortBase::getConnectorNames()
 
def getConnectorById (self, id)
 ConnectorProfileをIDで取得 [詳解]
 
def getConnectorByName (self, name)
 ConnectorProfileを名前で取得 [詳解]
 
def getConnectorProfileById (self, id, prof)
 ConnectorProfileをIDで取得bool OutPortBase::getConnectorProfileById(const char* id, ConnectorInfo& prof)
 
def getConnectorProfileByName (self, name, prof)
 ConnectorProfileを名前で取得bool OutPortBase::getConnectorProfileByName(const char* name, ConnectorInfo& prof)
 
def activateInterfaces (self)
 OutPortを activates するvoid OutPortBase::activateInterfaces()
 
def deactivateInterfaces (self)
 全ての Port のインターフェースを deactivates するvoid OutPortBase::deactivateInterfaces()
 
def addConnectorDataListener (self, listener_type, listener, autoclean=True)
 ConnectorDataListener リスナを追加する [詳解]
 
def removeConnectorDataListener (self, listener_type, listener)
 ConnectorDataListener リスナを削除する [詳解]
 
def addConnectorListener (self, callback_type, listener, autoclean=True)
 ConnectorListener リスナを追加する [詳解]
 
def removeConnectorListener (self, callback_type, listener)
 ConnectorDataListener リスナを削除する [詳解]
 
def configure (self)
 OutPortの設定を行うvoid OutPortBase::configure()
 
def publishInterfaces (self, cprof)
 Interface情報を公開するReturnCode_t OutPortBase::publishInterfaces(ConnectorProfile& cprof)
 
def subscribeInterfaces (self, cprof)
 Interface情報を取得するReturnCode_t OutPortBase::subscribeInterfaces(const ConnectorProfile& cprof)
 
def unsubscribeInterfaces (self, connector_profile)
 登録されているInterface情報を解除するvoid OutPortBase::unsubscribeInterfaces(const ConnectorProfile& connector_profile)
 
def initProviders (self)
 OutPort provider の初期化void OutPortBase::initProviders()
 
def initConsumers (self)
 InPort consumer の初期化void OutPortBase::initConsumers()
 
def createProvider (self, cprof, prop)
 OutPort provider の生成OutPortProvider* OutPortBase::createProvider(ConnectorProfile& cprof, coil::Properties& prop)
 
def createConsumer (self, cprof, prop)
 InPort consumer の生成InPortConsumer* OutPortBase::createConsumer(const ConnectorProfile& cprof, coil::Properties& prop)
 
def createConnector (self, cprof, prop, provider_=None, consumer_=None)
 OutPortPushConnector の生成OutPortConnector* OutPortBase::createConnector(const ConnectorProfile& cprof, coil::Properties& prop, InPortConsumer* consumer)
 
- 基底クラス OpenRTM_aist.PortBase.PortBase に属する継承公開メンバ関数
def __init__ (self, name=None)
 コンストラクタ [詳解]
 
def __del__ (self)
 デストラクタ [詳解]
 
def get_port_profile (self)
 [CORBA interface] PortProfileを取得する [詳解]
 
def getPortProfile (self)
 PortProfile を取得する。 [詳解]
 
def get_connector_profiles (self)
 [CORBA interface] ConnectorProfileListを取得する [詳解]
 
def get_connector_profile (self, connector_id)
 [CORBA interface] ConnectorProfile を取得する [詳解]
 
def connect (self, connector_profile)
 [CORBA interface] Port の接続を行う [詳解]
 
def notify_connect (self, connector_profile)
 [CORBA interface] Port の接続通知を行う [詳解]
 
def disconnect (self, connector_id)
 [CORBA interface] Port の接続を解除する [詳解]
 
def notify_disconnect (self, connector_id)
 [CORBA interface] Port の接続解除通知を行う [詳解]
 
def disconnect_all (self)
 [CORBA interface] Port の全接続を解除する [詳解]
 
def setName (self, name)
 Port の名前を設定する [詳解]
 
def getName (self)
 Port の名前を取得するconst char* PortBase::getName() const.
 
def getProfile (self)
 PortProfileを取得する [詳解]
 
def setPortRef (self, port_ref)
 Port のオブジェクト参照を設定する [詳解]
 
def getPortRef (self)
 Port のオブジェクト参照を取得する [詳解]
 
def setOwner (self, owner)
 Port の owner の RTObject を指定する [詳解]
 
def setOnPublishInterfaces (self, on_publish)
 インターフェースを公開する際に呼ばれるコールバックをセットする [詳解]
 
def setOnSubscribeInterfaces (self, on_subscribe)
 インターフェースを取得する際に呼ばれるコールバックをセットする [詳解]
 
def setOnConnected (self, on_connected)
 接続完了時に呼ばれるコールバックをセットする [詳解]
 
def setOnUnsubscribeInterfaces (self, on_subscribe)
 インターフェースを解放する際に呼ばれるコールバックをセットする [詳解]
 
def setOnDisconnected (self, on_disconnected)
 接続解除に呼ばれるコールバックをセットする [詳解]
 
def setPortConnectListenerHolder (self, portconnListeners)
 PortConnectListeners のホルダをセットする [詳解]
 
def publishInterfaces (self, connector_profile)
 Interface 情報を公開する(サブクラス実装用) [詳解]
 
def connectNext (self, connector_profile)
 次の Port に対して notify_connect() をコールする [詳解]
 
def disconnectNext (self, connector_profile)
 次の Port に対して notify_disconnect() をコールする [詳解]
 
def subscribeInterfaces (self, connector_profile)
 Interface 情報を取得する(サブクラス実装用) [詳解]
 
def unsubscribeInterfaces (self, connector_profile)
 Interface の接続を解除する(サブクラス実装用) [詳解]
 
def setConnectionLimit (self, limit_value)
 接続の最大数を設定する。 [詳解]
 
def isEmptyId (self, connector_profile)
 ConnectorProfile の connector_id フィールドが空かどうか判定 [詳解]
 
def getUUID (self)
 UUIDを生成する [詳解]
 
def setUUID (self, connector_profile)
 UUIDを生成し ConnectorProfile にセットする [詳解]
 
def isExistingConnId (self, id_)
 id が既存の ConnectorProfile のものかどうか判定する [詳解]
 
def findConnProfile (self, id_)
 id を持つ ConnectorProfile を探す [詳解]
 
def findConnProfileIndex (self, id_)
 id を持つ ConnectorProfile を探す [詳解]
 
def updateConnectorProfile (self, connector_profile)
 ConnectorProfile の追加もしくは更新 [詳解]
 
def eraseConnectorProfile (self, id_)
 ConnectorProfile を削除する [詳解]
 
def appendInterface (self, instance_name, type_name, pol)
 PortInterfaceProfile に インターフェースを登録する [詳解]
 
def deleteInterface (self, name, pol)
 PortInterfaceProfile からインターフェース登録を削除する [詳解]
 
def addProperty (self, key, value)
 PortProfile の properties に NameValue 値を追加する [詳解]
 
def appendProperty (self, key, value)
 PortProfile の properties に NameValue 値を要素に追加する [詳解]
 
def updateConnectors (self)
 存在しないポートをdisconnectする。 [詳解]
 
def checkPorts (self, ports)
 ポートの存在を確認する。 [詳解]
 
- 基底クラス OpenRTM_aist.DataPortStatus.DataPortStatus に属する継承公開メンバ関数
def toString (status)
 DataPortStatus リターンコードを文字列に変換 [詳解]
 

その他の継承メンバ

- 基底クラス OpenRTM_aist.DataPortStatus.DataPortStatus に属する継承静的公開変数類
int PORT_OK = 0
 brief DataPortStatus リターンコード [詳解]
 

詳解

OutPort 基底クラス

OutPort の基底クラス。

Properties: port.outport プロパティは

以下に指定したものが渡される。 (port.outport.[name]が優先される) さらに、一部のプロパティは接続時に ConnectorProfile により 渡される場合があり、その場合は ConnectorProfile が優先される。

dataport.dataflow_type dataport.interface_type dataport.subscription_type

[buffer]

[publihser]

[interface]

OutPort 側の connect() では以下のシーケンスで処理が行われる。

  1. OutPort に関連する connector 情報の生成およびセット
  2. InPortに関連する connector 情報の取得
    • ConnectorProfile::properties["dataport.corba_any.inport_ref"]に OutPortAny のオブジェクトリファレンスが設定されている場合、 リファレンスを取得してConsumerオブジェクトにセットする。 リファレンスがセットされていなければ無視して継続。 (OutPortがconnect() 呼び出しのエントリポイントの場合は、 InPortのオブジェクトリファレンスはセットされていないはずである。)
  3. PortBase::connect() をコール Portの接続の基本処理が行われる。
  4. 上記2.でInPortのリファレンスが取得できなければ、再度InPortに 関連する connector 情報を取得する。
  5. ConnectorProfile::properties で与えられた情報から、 OutPort側の初期化処理を行う。
  1. 上記の処理のうち一つでもエラーであれば、エラーリターンする。 正常に処理が行われた場合はRTC::RTC_OKでリターンする。
から
0.2.0

構築子と解体子

def OpenRTM_aist.OutPortBase.OutPortBase.__init__ (   self,
  name,
  data_type 
)

コンストラクタ

コンストラクタ。

引数
self
nameポート名

OutPortBase::OutPortBase(const char* name, const char* data_type)

def OpenRTM_aist.OutPortBase.OutPortBase.__del__ (   self,
  PortBase = OpenRTM_aist.PortBase 
)

デストラクタ

デストラクタ。 登録された全ての Publisher を削除する。

引数
self

メソッド詳解

def OpenRTM_aist.OutPortBase.OutPortBase.addConnectorDataListener (   self,
  listener_type,
  listener,
  autoclean = True 
)

ConnectorDataListener リスナを追加する

バッファ書き込みまたは読み出しイベントに関連する各種リスナを設定する。

設定できるリスナのタイプとコールバックイベントは以下の通り

  • ON_BUFFER_WRITE: バッファ書き込み時
  • ON_BUFFER_FULL: バッファフル時
  • ON_BUFFER_WRITE_TIMEOUT: バッファ書き込みタイムアウト時
  • ON_BUFFER_OVERWRITE: バッファ上書き時
  • ON_BUFFER_READ: バッファ読み出し時
  • ON_SEND: InProtへの送信時
  • ON_RECEIVED: InProtへの送信完了時
  • ON_SEND_ERTIMEOUT: OutPort側タイムアウト時
  • ON_SEND_ERERROR: OutPort側エラー時
  • ON_RECEIVER_FULL: InProt側バッファフル時
  • ON_RECEIVER_TIMEOUT: InProt側バッファタイムアウト時
  • ON_RECEIVER_ERROR: InProt側エラー時

リスナは ConnectorDataListener を継承し、以下のシグニチャを持つ operator() を実装している必要がある。

ConnectorDataListener:: operator()(const ConnectorProfile&, const cdrStream&)

デフォルトでは、この関数に与えたリスナオブジェクトの所有権は OutPortに移り、OutPort解体時もしくは、 removeConnectorDataListener() により削除時に自動的に解体される。 リスナオブジェクトの所有権を呼び出し側で維持したい場合は、第3引 数に false を指定し、自動的な解体を抑制することができる。

引数
listener_typeリスナタイプ
listenerリスナオブジェクトへのポインタ
autocleanリスナオブジェクトの自動的解体を行うかどうかのフラグ

void addConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener* listener, bool autoclean = true);

def OpenRTM_aist.OutPortBase.OutPortBase.addConnectorListener (   self,
  callback_type,
  listener,
  autoclean = True 
)

ConnectorListener リスナを追加する

バッファ書き込みまたは読み出しイベントに関連する各種リスナを設定する。

設定できるリスナのタイプは

  • ON_BUFFER_EMPTY: バッファが空の場合
  • ON_BUFFER_READTIMEOUT: バッファが空でタイムアウトした場合

リスナは以下のシグニチャを持つ operator() を実装している必要がある。

ConnectorListener::operator()(const ConnectorProfile&)

デフォルトでは、この関数に与えたリスナオブジェクトの所有権は OutPortに移り、OutPort解体時もしくは、 removeConnectorListener() により削除時に自動的に解体される。 リスナオブジェクトの所有権を呼び出し側で維持したい場合は、第3引 数に false を指定し、自動的な解体を抑制することができる。

引数
listener_typeリスナタイプ
listenerリスナオブジェクトへのポインタ
autocleanリスナオブジェクトの自動的解体を行うかどうかのフラグ

void addConnectorListener(ConnectorListenerType callback_type, ConnectorListener* listener, bool autoclean = true);

def OpenRTM_aist.OutPortBase.OutPortBase.connect (   self,
  connector_profile 
)

[CORBA interface] Port の接続を行う

与えられた ConnectoionProfile の情報に基づき、Port間の接続を確立 する。この関数は主にアプリケーションプログラムやツールから呼び出 すことを前提としている。

引数
connector_profileConnectorProfile
戻り値
ReturnCode_t 型のリターンコード
def OpenRTM_aist.OutPortBase.OutPortBase.getConnectorById (   self,
  id 
)

ConnectorProfileをIDで取得

現在所有しているコネクタをIDで取得する。

引数
idConnector ID
戻り値
コネクタへのポインタ

OutPortConnector* getConnectorById(const char* id);

def OpenRTM_aist.OutPortBase.OutPortBase.getConnectorByName (   self,
  name 
)

ConnectorProfileを名前で取得

現在所有しているコネクタを名前で取得する。

引数
nameConnector name
戻り値
コネクタへのポインタ

OutPortConnector* getConnectorByName(const char* name);

def OpenRTM_aist.OutPortBase.OutPortBase.init (   self,
  prop 
)

プロパティの初期化

OutPortのプロパティを初期化する

void init(coil::Properties& prop);

def OpenRTM_aist.OutPortBase.OutPortBase.properties (   self)

プロパティを取得する

OutPortのプロパティを取得する。

戻り値
プロパティ

coil::Properties& OutPortBase::properties()

def OpenRTM_aist.OutPortBase.OutPortBase.removeConnectorDataListener (   self,
  listener_type,
  listener 
)

ConnectorDataListener リスナを削除する

設定した各種リスナを削除する。

引数
listener_typeリスナタイプ
listenerリスナオブジェクトへのポインタ

void removeConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener* listener);

def OpenRTM_aist.OutPortBase.OutPortBase.removeConnectorListener (   self,
  callback_type,
  listener 
)

ConnectorDataListener リスナを削除する

設定した各種リスナを削除する。

引数
listener_typeリスナタイプ
listenerリスナオブジェクトへのポインタ

void removeConnectorListener(ConnectorListenerType callback_type, ConnectorListener* listener);

def OpenRTM_aist.OutPortBase.OutPortBase.write (   self)

データ書き込み

ポートへデータを書き込む。 バインドされた変数に設定された値をポートに書き込む。

戻り値
書き込み処理結果(書き込み成功:true、書き込み失敗:false)

virtual bool write() = 0;


このクラス詳解は次のファイルから抽出されました: