jp.go.aist.rtm.RTC.port
クラス InPort<DataType>

java.lang.Object
  上位を拡張 org.omg.PortableServer.Servant
      上位を拡張 RTC.PortServicePOA
          上位を拡張 jp.go.aist.rtm.RTC.port.PortBase
              上位を拡張 jp.go.aist.rtm.RTC.port.InPortBase
                  上位を拡張 jp.go.aist.rtm.RTC.port.InPort<DataType>
型パラメータ:
DataType - データ型を指定します。
すべての実装されたインタフェース:
SDOServiceOperations, org.omg.CORBA.portable.InvokeHandler, PortServiceOperations

public class InPort<DataType>
extends InPortBase

入力ポートのためのベース実装クラスです。 外部から送信されてきたデータは順次、コンストラクタで指定されたバッファに格納されます。 バッファ内のデータはフラグによって未読/既読状態が管理され、isNew(), isEmpty()などの メソッドによってハンドリングできます。


入れ子のクラスの概要
 
クラス jp.go.aist.rtm.RTC.port.PortBase から継承された入れ子のクラス/インタフェース
PortBase.connect_func, PortBase.disconnect_all_func, PortBase.disconnect_func, PortBase.find_conn_id, PortBase.find_interface, PortBase.find_port_ref
 
フィールドの概要
 
クラス jp.go.aist.rtm.RTC.port.InPortBase から継承されたフィールド
m_connectors, m_consumerTypes, m_listeners, m_properties, m_providerTypes, m_singlebuffer, m_thebuffer
 
クラス jp.go.aist.rtm.RTC.port.PortBase から継承されたフィールド
m_connectionLimit, m_connectorsMutex, m_objref, m_onConnected, m_onConnectionLost, m_onDisconnected, m_onPublishInterfaces, m_onSubscribeInterfaces, m_onUnsubscribeInterfaces, m_ownerInstanceName, m_profile, m_profile_mutex, rtcout
 
コンストラクタの概要
InPort(BufferBase<DataType> superClass, java.lang.String name, DataRef<DataType> value, boolean read_block, boolean write_block, long read_timeout, long write_timeout)
          コンストラクタです。
InPort(java.lang.String name, DataRef<DataType> value)
          コンストラクタです。
 
メソッドの概要
 DataType extract()
          T 型のデータへ InPort の最新値データを読み込む InPort に設定されている最新データを読み込み、 指定されたデータ変数に設定する。
 boolean isEmpty()
          バッファが空かどうか確認する {@.ja InPortのバッファが空かどうかを bool 値で返す。
 boolean isNew()
          最新データが存在するか確認する {@.ja InPortに未読の最新データが到着しているかをbool値で返す。
 java.lang.String name()
          ポート名称を取得します。
 boolean read()
          DataPort から値を読み出す {@.ja InPortに書き込まれたデータを読みだす。
 void setOnOverflow(OnOverflow<DataType> onOverflow)
          データ書き込み時に、バッファオーバーフロー検出の際に呼び出される コールバックインタフェースを設定します。
 void setOnRead(OnRead<DataType> onRead)
          ポートが持つバッファからデータが読み込まれる直前に呼び出される コールバックインタフェースを設定します。
 void setOnReadConvert(OnReadConvert<DataType> onReadConvert)
          ポートが持つバッファからデータが読み出される際に呼び出される コールバックインタフェースを設定します。
 void setOnUnderflow(OnUnderflow<DataType> onUnderflow)
          データ読み込みときに、バッファアンダーフロー検出の際に呼び出される コールバックインタフェースを設定します。
 void setOnWrite(OnWrite<DataType> onWrite)
          ポートが持つバッファにデータが書き込まれる直前に呼び出される コールバックインタフェースを設定します。
 void setOnWriteConvert(OnWriteConvert<DataType> onWriteConvert)
          ポートが持つバッファにデータが書き込まれる際に呼び出される コールバックインタフェースを設定します。
 boolean setStreamable(org.omg.CORBA.portable.Streamable holderStreamable)
          CDR化で使用するStreamableを設定する {@.ja 与えられたStreamableをCDR化で使用するStreamableへ設定する。
 void update()
          バインドされたDataType型のデータに、ポート内バッファの最新値を読み込みます。
 
クラス jp.go.aist.rtm.RTC.port.InPortBase から継承されたメソッド
activateInterfaces, addConnectorDataListener, addConnectorDataListener, addConnectorListener, addConnectorListener, connect, connectors, createConnector, createConnector, createConsumer, createProvider, deactivateInterfaces, getConnectorById, getConnectorByName, getConnectorIds, getConnectorNames, getConnectorProfileById, getConnectorProfileByName, getConnectorProfiles, init, initConsumers, initProviders, isLittleEndian, properties, publishInterfaces, removeConnectorDataListener, removeConnectorListener, subscribeInterfaces, unsubscribeInterfaces
 
クラス jp.go.aist.rtm.RTC.port.PortBase から継承されたメソッド
_publishInterfaces, _this, addProperty, appendInterface, appendProperty, checkPorts, connectNext, deleteInterface, disconnect_all, disconnect, disconnectNext, eraseConnectorProfile, findConnProfile, findConnProfileIndex, get_connector_profile, get_connector_profiles, get_port_profile, getName, getPortProfile, getPortRef, getProfile, getUUID, isEmptyId, isExistingConnId, notify_connect, notify_disconnect, setConnectionLimit, setName, setOnConnected, setOnConnectionLost, setOnDisconnected, setOnPublishInterfaces, setOnSubscribeInterfaces, setOnUnsubscribeInterfaces, setOwner, setPortRef, setUUID, updateConnectorProfile, updateConnectors
 
クラス RTC.PortServicePOA から継承されたメソッド
_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 から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

InPort

public InPort(BufferBase<DataType> superClass,
              java.lang.String name,
              DataRef<DataType> value,
              boolean read_block,
              boolean write_block,
              long read_timeout,
              long write_timeout)

コンストラクタです。

パラメータ:
name - ポート名称
value - このポートにバインドされるDataType型の変数
read_block - データ読み込み時に未読データがない場合に、データ受信までブロックする場合はtrue、さもなくばfalse
write_block - データ書き込み時にバッファがフルであった場合に、バッファに空きができるまでブロック場合はtrue、さもなくばfalse
read_timeout - 非ブロック指定の場合の、データ読み取りのタイムアウト時間 (ミリ秒)
write_timeout - 非ブロック指定の場合の、データ書き込みのタイムアウト時間 (ミリ秒)

InPort

public InPort(java.lang.String name,
              DataRef<DataType> value)

コンストラクタです。 読み取り・書き込みともに非ブロックモードとなり、タイムアウト時間は0で設定されます。

パラメータ:
name - ポート名称
value - このポートにバインドされるDataType型の変数
メソッドの詳細

name

public java.lang.String name()

ポート名称を取得します。

戻り値:
ポート名称

isNew

public boolean isNew()
最新データが存在するか確認する

InPortに未読の最新データが到着しているかをbool値で返す。 InPortが未接続の場合、および接続コネクタのバッファがEmpty の場合にはfalseを返す。

戻り値:
true 未読の最新データが存在する false 未接続またはバッファにデータが存在しない。

read

public boolean read()
DataPort から値を読み出す

InPortに書き込まれたデータを読みだす。接続数が0、またはバッファに データが書き込まれていない状態で読みだした場合の戻り値は不定である。 バッファが空の状態のとき、 事前に設定されたモード (readback, do_nothing, block) に応じて、 以下のような動作をする。 - readback: 最後の値を読みなおす。 - do_nothing: 何もしない - block: ブロックする。タイムアウトが設定されている場合は、 タイムアウトするまで待つ。 バッファが空の状態では、InPortにバインドされた変数の値が返される。 したがって、初回読み出し時には不定値を返す可能性がある。 この関数を利用する際には、 - isNew(), isEmpty() と併用し、事前にバッファ状態をチェックする。 - 初回読み出し時に不定値を返さないようにバインド変数を事前に初期化する - ReturnCode read(DataType& data) 関数の利用を検討する。 ことが望ましい。 各コールバック関数は以下のように呼び出される。 - OnRead: read() 関数が呼ばれる際に必ず呼ばれる。 - OnReadConvert: データの読み出しが成功した場合、読みだしたデータを 引数としてOnReadConvertが呼び出され、戻り値をread()が戻り値 として返す。 - OnEmpty: バッファが空のためデータの読み出しに失敗した場合呼び出される。 OnEmpty の戻り値を read() の戻り値として返す。 - OnBufferTimeout: データフロー型がPush型の場合に、読み出し タイムアウトのためにデータの読み出しに失敗した場合に呼ばれる。 - OnRecvTimeout: データフロー型がPull型の場合に、読み出しタイムアウト のためにデータ読み出しに失敗した場合に呼ばれる。 - OnReadError: 上記以外の理由で読みだしに失敗した場合に呼ばれる。 理由としては、バッファ設定の不整合、例外の発生などが考えられる が通常は起こりえないためバグの可能性がある。

定義:
クラス InPortBase 内の read
戻り値:
読み出し結果(読み出し成功:true, 読み出し失敗:false)

update

public void update()

バインドされたDataType型のデータに、ポート内バッファの最新値を読み込みます。
ただし、あらかじめコンストラクタで、DataType型の変数がバインドされていなければなりません。


extract

public DataType extract()
T 型のデータへ InPort の最新値データを読み込む

InPort に設定されている最新データを読み込み、 指定されたデータ変数に設定する。

戻り値:
InPort バッファから値を読み込む T 型変数

setOnWrite

public void setOnWrite(OnWrite<DataType> onWrite)

ポートが持つバッファにデータが書き込まれる直前に呼び出される コールバックインタフェースを設定します。

パラメータ:
onWrite - OnWrite<DataType>インタフェースを持つオブジェクト

setOnWriteConvert

public void setOnWriteConvert(OnWriteConvert<DataType> onWriteConvert)

ポートが持つバッファにデータが書き込まれる際に呼び出される コールバックインタフェースを設定します。
コールバックインタフェースの戻り値がバッファに書き込まれます。

パラメータ:
onWriteConvert - OnWriteConvert<DataType>インタフェースを持つオブジェクト

setOnRead

public void setOnRead(OnRead<DataType> onRead)

ポートが持つバッファからデータが読み込まれる直前に呼び出される コールバックインタフェースを設定します。

パラメータ:
onRead - OnRead<DataType>インタフェースを持つオブジェクト

setOnReadConvert

public void setOnReadConvert(OnReadConvert<DataType> onReadConvert)

ポートが持つバッファからデータが読み出される際に呼び出される コールバックインタフェースを設定します。
コールバックインタフェースの戻り値がread()メソッドの読み出し結果として取得されます。

パラメータ:
onReadConvert - OnReadConvert<DataType>インタフェースを持つオブジェクト

setOnOverflow

public void setOnOverflow(OnOverflow<DataType> onOverflow)

データ書き込み時に、バッファオーバーフロー検出の際に呼び出される コールバックインタフェースを設定します。

パラメータ:
onOverflow - OnOverflow<DataType>インタフェースを持つオブジェクト

setOnUnderflow

public void setOnUnderflow(OnUnderflow<DataType> onUnderflow)

データ読み込みときに、バッファアンダーフロー検出の際に呼び出される コールバックインタフェースを設定します。

パラメータ:
onUnderflow - OnUnderflow<DataType>インタフェースを持つオブジェクト

isEmpty

public boolean isEmpty()
バッファが空かどうか確認する

InPortのバッファが空かどうかを bool 値で返す。 空の場合は true, 未読データがある場合は false を返す。

戻り値:
true バッファは空 false バッファに未読データがある

setStreamable

public boolean setStreamable(org.omg.CORBA.portable.Streamable holderStreamable)
CDR化で使用するStreamableを設定する

与えられたStreamableをCDR化で使用するStreamableへ設定する。 また、与えられたStreamableからvalueフィールドを取得し保持する。

パラメータ:
holderStreamable - HolderクラスのStreamable
戻り値:
false 失敗