jp.go.aist.rtm.RTC.port
クラス PortBase

java.lang.Object
  上位を拡張 org.omg.PortableServer.Servant
      上位を拡張 RTC.PortPOA
          上位を拡張 jp.go.aist.rtm.RTC.port.PortBase
すべての実装されたインタフェース:
SDOServiceOperations, org.omg.CORBA.portable.InvokeHandler, PortOperations
直系の既知のサブクラス:
CorbaPort, DataInPort, DataOutPort

public abstract class PortBase
extends PortPOA

Portサーバントのベース実装となるクラスです。

Portは、UMLにおけるポートの概念をほぼ継承しており、ほぼ同等のものとみなすことができます。 RTコンポーネントのコンセプトにおいては、Portはコンポーネントに付属するものであり、 コンポーネントが他のコンポーネントと相互作用を行う接点であり、 通常は幾つかのインターフェースと関連付けられます。

コンポーネントはPortを通して外部に対してインターフェースを提供または要求 することができ、Portはその接続を管理する役割を担っています。

Portの具象クラスは、通常はRTコンポーネントインスタンス生成時に同時に生成され、 提供・要求インターフェースを登録した後、RTコンポーネントに登録され、 外部からアクセス可能なPortとして機能することを想定しています。

Portは、CORBAインターフェースとして以下のオペレーションを提供します。

このクラスでは、これらのオペレーションの実装を提供しています。

上記のオペレーションのうち、get_port_profile(), get_connector_profiles(), get_connector_profile(), connect(), disconnect(), disconnect_all()は、 サブクラスにおいて特に振る舞いを変更する必要がないため、オーバーライドすることは推奨されません。

notify_connect(), notify_disconnect()については、サブクラスが提供・要求するインターフェースの 種類に応じて、振る舞いを変更する必要が生ずるかもしれませんが、これらを直接オーバーライドすることは 推奨されず、後述のnotify_connect(), notify_disconnect()の項にも記述されている通りに、 これらのメソッドに関連したprotectedメソッドをオーバーライドすることにより振る舞いを変更することが 推奨されます。


コンストラクタの概要
PortBase()
          デフォルトコンストラクタです。
PortBase(java.lang.String name)
          本コンストラクタでは、オブジェクトの初期化処理を行うと同時に、 自身をCORBAオブジェクトとして活性化します。
 
メソッドの概要
 Port _this()
          当該PortのCORBAオブジェクト参照を取得します。
 ReturnCode_t connect(ConnectorProfileHolder connector_profile)
          ポート間の接続を行います。
 ReturnCode_t disconnect_all()
          当該ポートに関連したすべての接続を解除します。
 ReturnCode_t disconnect(java.lang.String connector_id)
          ポートの接続を解除します。
 ConnectorProfile get_connector_profile(java.lang.String connector_id)
          指定されたコネクタIDに対応する接続プロファイルを取得します。
 ConnectorProfile[] get_connector_profiles()
          ConnectorProfileリストを取得します。
 PortProfile get_port_profile()
          PortProfileを取得します。
 Port getPortRef()
          当該ポートのPortProfileが保持している、当該ポート自身のCORBAオブジェクト参照を取得します。
 PortProfile getProfile()
          当該ポートが保持しているPortProfileオブジェクトを取得します。
 ReturnCode_t notify_connect(ConnectorProfileHolder connector_profile)
          ポートの接続通知を行います。
 ReturnCode_t notify_disconnect(java.lang.String connector_id)
          ポートの接続解除通知を行います。
 void setName(java.lang.String name)
          ポート名を設定します。
 void setOwner(RTObject owner)
          当該ポートのオーナーRTObjectを設定します。
 void setPortRef(Port port_ref)
          指定されたポートCORBAオブジェクト参照を設定します。
 
クラス RTC.PortPOA から継承されたメソッド
_all_interfaces, _invoke, _this
 
クラス org.omg.PortableServer.Servant から継承されたメソッド
_default_POA, _get_delegate, _get_interface_def, _is_a, _non_existent, _object_id, _orb, _poa, _set_delegate, _this_object, _this_object
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

PortBase

public PortBase(java.lang.String name)

本コンストラクタでは、オブジェクトの初期化処理を行うと同時に、 自身をCORBAオブジェクトとして活性化します。さらに、自分自身のPortProfileの port_refメンバに、自身のCORBAオブジェクト参照を格納します。

パラメータ:
name - ポート名

PortBase

public PortBase()

デフォルトコンストラクタです。ポート名には空文字列が割り当てられます。

メソッドの詳細

_this

public Port _this()

当該PortのCORBAオブジェクト参照を取得します。

オーバーライド:
クラス PortPOA 内の _this
戻り値:
当該PortのCORBAオブジェクト参照

get_port_profile

public PortProfile get_port_profile()

PortProfileを取得します。なお、PortProfileは次のメンバを持っています。

戻り値:
本ポートに関するPortProfileオブジェクト

get_connector_profiles

public ConnectorProfile[] get_connector_profiles()

ConnectorProfileリストを取得します。 ConnectorProfileはポート間の接続プロファイル情報を保持するクラスであり、 接続時にポート間で情報交換を行い、関連するすべてのポートで同一の値が保持されます。

ConnectorProfileは以下のメンバを保持しています。

戻り値:
このポートに関連するConnectorProfileオブジェクトの配列

get_connector_profile

public ConnectorProfile get_connector_profile(java.lang.String connector_id)

指定されたコネクタIDに対応する接続プロファイルを取得します。

パラメータ:
connector_id - コネクタID
戻り値:
指定されたコネクタIDに対応する接続プロファイル

connect

public ReturnCode_t connect(ConnectorProfileHolder connector_profile)

ポート間の接続を行います。指定された接続プロファイルにしたがってポート間の接続を確立します。

アプリケーションプログラム側は、幾つかのコンポーネントが持つ複数のポート間を接続したい場合、 適切な値を設定した接続プロファイルを引数として渡すことにより、関連するポート間の接続を確立できます。

本メソッドの呼び出しにあたっては、ConnectorProfileオブジェクトのメンバのうち、 次のものについて値を設定しておかねばなりません。

パラメータ:
connector_profile - 接続プロファイル
戻り値:
ReturnCode_t型による戻り値

notify_connect

public ReturnCode_t notify_connect(ConnectorProfileHolder connector_profile)

ポートの接続通知を行います。本メソッドは、ポート間で接続が行われる際に、 ポート間で内部的に呼び出されます。

パラメータ:
connector_profile - 接続プロファイル
戻り値:
ReturnCode_t型の戻り値

disconnect

public ReturnCode_t disconnect(java.lang.String connector_id)

ポートの接続を解除します。このメソッドは、接続確立時に接続に対して与えられるコネクタIDに 対応するピア・ポートとの接続を解除します。

パラメータ:
connector_id - コネクタID
戻り値:
ReturnCode_t型の戻り値

notify_disconnect

public ReturnCode_t notify_disconnect(java.lang.String connector_id)

ポートの接続解除通知を行います。本メソッドは、ポート間の接続解除が行われる際に、 ポート間で内部的に呼び出されます。

パラメータ:
connector_id - コネクタID
戻り値:
ReturnCode_t型の戻り値

disconnect_all

public ReturnCode_t disconnect_all()

当該ポートに関連したすべての接続を解除します。

戻り値:
ReturnCode_t型の戻り値

setName

public void setName(java.lang.String name)

ポート名を設定します。指定されたポート名は、PortProfileのnameメンバに設定されます。

パラメータ:
name - ポート名

getProfile

public final PortProfile getProfile()

当該ポートが保持しているPortProfileオブジェクトを取得します。

戻り値:
当該ポートが保持しているPortProfileオブジェクト

setPortRef

public void setPortRef(Port port_ref)

指定されたポートCORBAオブジェクト参照を設定します。

本メソッドは、当該ポート自身のCORBAオブジェクト参照を設定するために用います。 当該ポートのCORBAオブジェクト参照以外は設定しないでください。

パラメータ:
port_ref - 当該ポートのCORBAオブジェクト参照

getPortRef

public Port getPortRef()

当該ポートのPortProfileが保持している、当該ポート自身のCORBAオブジェクト参照を取得します。

パラメータ:
当該ポートのCORBAオブジェクト参照 -

setOwner

public void setOwner(RTObject owner)

当該ポートのオーナーRTObjectを設定します。 指定されたRTObjectオブジェクトが、PortProfileのownerメンバに設定されます。

パラメータ:
owner - 当該ポートを所有するRTObjectのCORBAオブジェクト参照