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

[詳解]

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

クラス

class  connector_cleanup
 

公開メンバ関数

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)
 
def notify_connect (self, connector_profile)
 
def properties (self)
 
def connectors (self)
 
def getConnectorProfiles (self)
 
def getConnectorIds (self)
 
def getConnectorNames (self)
 
def getConnectorById (self, id)
 
def getConnectorByName (self, name)
 
def getConnectorProfileById (self, id)
 
def getConnectorProfileByName (self, name)
 
def activateInterfaces (self)
 
def deactivateInterfaces (self)
 
def addConnectorDataListener (self, listener_type, listener)
 
def removeConnectorDataListener (self, listener_type, listener)
 
def addConnectorListener (self, callback_type, listener)
 
def removeConnectorListener (self, callback_type, listener)
 
def configure (self)
 
def publishInterfaces (self, cprof)
 
def subscribeInterfaces (self, cprof)
 
def unsubscribeInterfaces (self, connector_profile)
 
def initProviders (self)
 
def initConsumers (self)
 
def createProvider (self, cprof, prop)
 
def createConsumer (self, cprof, prop)
 
def createConnector (self, cprof, prop, provider_=None, consumer_=None)
 
def createDuplexConnector (self, cprof, prop, provider_)
 
def getLocalInPort (self, profile)
 
- 基底クラス OpenRTM_aist.PortBase.PortBase に属する継承公開メンバ関数
def __init__ (self, name=None)
 
def __del__ (self)
 
def exit (self)
 
def get_port_profile (self)
 
def getPortProfile (self)
 
def get_connector_profiles (self)
 
def get_connector_profile (self, connector_id)
 
def connect (self, connector_profile)
 
def notify_connect (self, connector_profile)
 
def disconnect (self, connector_id)
 
def notify_disconnect (self, connector_id)
 
def disconnect_all (self)
 
def setName (self, name)
 
def getName (self)
 
def getProfile (self)
 
def setPortRef (self, port_ref)
 
def getPortRef (self)
 
def setOwner (self, owner)
 
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)
 
def publishInterfaces (self, connector_profile)
 
def connectNext (self, connector_profile)
 
def disconnectNext (self, connector_profile)
 
def subscribeInterfaces (self, connector_profile)
 
def unsubscribeInterfaces (self, connector_profile)
 
def setConnectionLimit (self, limit_value)
 
def isEmptyId (self, connector_profile)
 
def getUUID (self)
 
def setUUID (self, connector_profile)
 
def isExistingConnId (self, id_)
 
def findConnProfile (self, id_)
 
def findConnProfileIndex (self, id_)
 
def updateConnectorProfile (self, connector_profile)
 
def eraseConnectorProfile (self, id_)
 
def appendInterface (self, instance_name, type_name, pol)
 
def deleteInterface (self, name, pol)
 
def addProperty (self, key, value)
 
def appendProperty (self, key, value)
 
def updateConnectors (self)
 
def checkPorts (self, ports)
 
def isExistingMarshalingType (self, con_prop)
 
- 基底クラス OpenRTM_aist.DataPortStatus.DataPortStatus に属する継承公開メンバ関数
def toString (status)
 

その他の継承メンバ

- 基底クラス 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

構築子と解体子

◆ __init__()

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

コンストラクタ

コンストラクタ。

引数
self
nameポート名

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

OpenRTM_aist.DataPortStatus.DataPortStatusを再実装しています。

OpenRTM_aist.OutPort.OutPort, OpenRTM_aist.CSPOutPort.CSPOutPortで再実装されています。

◆ __del__()

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

デストラクタ

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

引数
self

OpenRTM_aist.PortBase.PortBaseを再実装しています。

OpenRTM_aist.CSPOutPort.CSPOutPort, OpenRTM_aist.OutPort.OutPortで再実装されています。

メソッド詳解

◆ activateInterfaces()

def OpenRTM_aist.OutPortBase.OutPortBase.activateInterfaces (   self)

OutPortを activates する

void OutPortBase::activateInterfaces()

◆ addConnectorDataListener()

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

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リスナオブジェクトへのポインタ

void addConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener* listener);

◆ addConnectorListener()

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

ConnectorListener リスナを追加する

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

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

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

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

ConnectorListener::operator()(const ConnectorProfile&)

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

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

void addConnectorListener(ConnectorListenerType callback_type, ConnectorListener* listener);

◆ configure()

def OpenRTM_aist.OutPortBase.OutPortBase.configure (   self)

OutPortの設定を行う

void OutPortBase::configure()

◆ connect()

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

[CORBA interface] Port の接続を行う

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

引数
connector_profileConnectorProfile
戻り値
ReturnCode_t 型のリターンコード

OpenRTM_aist.PortBase.PortBaseを再実装しています。

◆ connectors()

def OpenRTM_aist.OutPortBase.OutPortBase.connectors (   self)

Connector を取得

const std::vector<OutPortConnector*>& OutPortBase::connectors()

◆ createConnector()

def OpenRTM_aist.OutPortBase.OutPortBase.createConnector (   self,
  cprof,
  prop,
  provider_ = None,
  consumer_ = None 
)

OutPortPushConnector の生成

OutPortConnector* OutPortBase::createConnector(const ConnectorProfile& cprof, coil::Properties& prop, InPortConsumer* consumer)

◆ createConsumer()

def OpenRTM_aist.OutPortBase.OutPortBase.createConsumer (   self,
  cprof,
  prop 
)

InPort consumer の生成

InPortConsumer* OutPortBase::createConsumer(const ConnectorProfile& cprof, coil::Properties& prop)

◆ createDuplexConnector()

def OpenRTM_aist.OutPortBase.OutPortBase.createDuplexConnector (   self,
  cprof,
  prop,
  provider_ 
)

InPortDuplexConnector の生成

双方向通信用コネクタを生成し、生成が成功すれば m_connectors に保存する。

引数
cprofコネクタプロファイル
propコネクタプロファイルをプロパティに変換
provider_プロバイダ
戻り値
生成したコネクタ。生成に失敗した場合 None を返す。

◆ createProvider()

def OpenRTM_aist.OutPortBase.OutPortBase.createProvider (   self,
  cprof,
  prop 
)

OutPort provider の生成

OutPortProvider* OutPortBase::createProvider(ConnectorProfile& cprof, coil::Properties& prop)

◆ deactivateInterfaces()

def OpenRTM_aist.OutPortBase.OutPortBase.deactivateInterfaces (   self)

全ての Port のインターフェースを deactivates する

void OutPortBase::deactivateInterfaces()

◆ getConnectorById()

def OpenRTM_aist.OutPortBase.OutPortBase.getConnectorById (   self,
  id 
)

ConnectorProfileをIDで取得

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

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

OutPortConnector* getConnectorById(const char* id);

◆ getConnectorByName()

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

ConnectorProfileを名前で取得

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

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

OutPortConnector* getConnectorByName(const char* name);

◆ getConnectorIds()

def OpenRTM_aist.OutPortBase.OutPortBase.getConnectorIds (   self)

ConnectorId を取得

coil::vstring OutPortBase::getConnectorIds()

◆ getConnectorNames()

def OpenRTM_aist.OutPortBase.OutPortBase.getConnectorNames (   self)

Connectorの名前を取得

coil::vstring OutPortBase::getConnectorNames()

◆ getConnectorProfileById()

def OpenRTM_aist.OutPortBase.OutPortBase.getConnectorProfileById (   self,
  id 
)

ConnectorProfileをIDで取得

bool OutPortBase::getConnectorProfileById(const char* id, ConnectorInfo& prof)

◆ getConnectorProfileByName()

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

ConnectorProfileを名前で取得

bool OutPortBase::getConnectorProfileByName(const char* name, ConnectorInfo& prof)

◆ getConnectorProfiles()

def OpenRTM_aist.OutPortBase.OutPortBase.getConnectorProfiles (   self)

ConnectorProfile を取得

ConnectorBase::ConnectorInfoList OutPortBase::getConnectorProfiles()

◆ getLocalInPort()

def OpenRTM_aist.OutPortBase.OutPortBase.getLocalInPort (   self,
  profile 
)

ローカルのピアInPortを取得

引数
self
profileコネクタプロファイル
戻り値
InPortのサーバント(取得に失敗した場合はNone)

InPortBase* getLocalInPort(const ConnectorInfo& profile)

◆ init()

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

プロパティの初期化

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

void init(coil::Properties& prop);

OpenRTM_aist.CSPOutPort.CSPOutPortで再実装されています。

◆ initConsumers()

def OpenRTM_aist.OutPortBase.OutPortBase.initConsumers (   self)

InPort consumer の初期化

void OutPortBase::initConsumers()

◆ initProviders()

def OpenRTM_aist.OutPortBase.OutPortBase.initProviders (   self)

OutPort provider の初期化

void OutPortBase::initProviders()

◆ notify_connect()

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

引数
self
connector_profile
戻り値

OpenRTM_aist.PortBase.PortBaseを再実装しています。

OpenRTM_aist.CSPOutPort.CSPOutPortで再実装されています。

◆ properties()

def OpenRTM_aist.OutPortBase.OutPortBase.properties (   self)

プロパティを取得する

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

戻り値
プロパティ

coil::Properties& OutPortBase::properties()

◆ publishInterfaces()

def OpenRTM_aist.OutPortBase.OutPortBase.publishInterfaces (   self,
  cprof 
)

Interface情報を公開する

ReturnCode_t OutPortBase::publishInterfaces(ConnectorProfile& cprof)

OpenRTM_aist.PortBase.PortBaseを再実装しています。

◆ removeConnectorDataListener()

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

ConnectorDataListener リスナを削除する

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

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

void removeConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener* listener);

◆ removeConnectorListener()

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

ConnectorDataListener リスナを削除する

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

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

void removeConnectorListener(ConnectorListenerType callback_type, ConnectorListener* listener);

◆ subscribeInterfaces()

def OpenRTM_aist.OutPortBase.OutPortBase.subscribeInterfaces (   self,
  cprof 
)

Interface情報を取得する

ReturnCode_t OutPortBase::subscribeInterfaces(const ConnectorProfile& cprof)

OpenRTM_aist.PortBase.PortBaseを再実装しています。

◆ unsubscribeInterfaces()

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

登録されているInterface情報を解除する

void OutPortBase::unsubscribeInterfaces(const ConnectorProfile& connector_profile)

OpenRTM_aist.PortBase.PortBaseを再実装しています。

◆ write()

def OpenRTM_aist.OutPortBase.OutPortBase.write (   self)

データ書き込み

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

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

virtual bool write() = 0;

OpenRTM_aist.CSPOutPort.CSPOutPort, OpenRTM_aist.OutPort.OutPortで再実装されています。


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