DataType
- データ型を指定します。public class InPort<DataType> extends InPortBase
入力ポートのためのベース実装クラスです。 外部から送信されてきたデータは順次、コンストラクタで指定されたバッファに格納されます。 バッファ内のデータはフラグによって未読/既読状態が管理され、isNew(), isEmpty()などの メソッドによってハンドリングできます。
PortBase.connect_func, PortBase.disconnect_all_func, PortBase.disconnect_func, PortBase.find_conn_id, PortBase.find_interface, PortBase.find_port_ref
m_connectors, m_consumerTypes, m_listeners, m_properties, m_providerTypes, m_singlebuffer, m_thebuffer
m_connectionLimit, m_connectorsMutex, m_objref, m_onConnected, m_onConnectionLost, m_onDisconnected, m_onPublishInterfaces, m_onSubscribeInterfaces, m_onUnsubscribeInterfaces, m_ownerInstanceName, m_portconnListeners, 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型のデータに、ポート内バッファの最新値を読み込みます。
|
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
_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, onConnected, onConnectNextport, onDisconnected, onDisconnectNextport, onNotifyConnect, onNotifyDisconnect, onPublishInterfaces, onSubscribeInterfaces, onUnsubscribeInterfaces, setConnectionLimit, setName, setOnConnected, setOnConnectionLost, setOnDisconnected, setOnPublishInterfaces, setOnSubscribeInterfaces, setOnUnsubscribeInterfaces, setOwner, setPortConnectListenerHolder, setPortRef, setUUID, updateConnectorProfile, updateConnectors
_all_interfaces, _invoke, _this
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、さもなくばfalsewrite_block
- データ書き込み時にバッファがフルであった場合に、バッファに空きができるまでブロック場合はtrue、さもなくばfalseread_timeout
- 非ブロック指定の場合の、データ読み取りのタイムアウト時間 (ミリ秒)write_timeout
- 非ブロック指定の場合の、データ書き込みのタイムアウト時間 (ミリ秒)public java.lang.String name()
ポート名称を取得します。
public boolean isNew()
InPortに未読の最新データが到着しているかをbool値で返す。 InPortが未接続の場合、および接続コネクタのバッファがEmpty の場合にはfalseを返す。
public boolean read()
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: 上記以外の理由で読みだしに失敗した場合に呼ばれる。 理由としては、バッファ設定の不整合、例外の発生などが考えられる が通常は起こりえないためバグの可能性がある。
read
クラス内 InPortBase
public void update()
バインドされたDataType型のデータに、ポート内バッファの最新値を読み込みます。
ただし、あらかじめコンストラクタで、DataType型の変数がバインドされていなければなりません。
public DataType extract()
InPort に設定されている最新データを読み込み、 指定されたデータ変数に設定する。
public void setOnWrite(OnWrite<DataType> onWrite)
ポートが持つバッファにデータが書き込まれる直前に呼び出される コールバックインタフェースを設定します。
onWrite
- OnWrite<DataType>インタフェースを持つオブジェクトpublic void setOnWriteConvert(OnWriteConvert<DataType> onWriteConvert)
ポートが持つバッファにデータが書き込まれる際に呼び出される
コールバックインタフェースを設定します。
コールバックインタフェースの戻り値がバッファに書き込まれます。
onWriteConvert
- OnWriteConvert<DataType>インタフェースを持つオブジェクトpublic void setOnRead(OnRead<DataType> onRead)
ポートが持つバッファからデータが読み込まれる直前に呼び出される コールバックインタフェースを設定します。
onRead
- OnRead<DataType>インタフェースを持つオブジェクトpublic void setOnReadConvert(OnReadConvert<DataType> onReadConvert)
ポートが持つバッファからデータが読み出される際に呼び出される
コールバックインタフェースを設定します。
コールバックインタフェースの戻り値がread()メソッドの読み出し結果として取得されます。
onReadConvert
- OnReadConvert<DataType>インタフェースを持つオブジェクトpublic void setOnOverflow(OnOverflow<DataType> onOverflow)
データ書き込み時に、バッファオーバーフロー検出の際に呼び出される コールバックインタフェースを設定します。
onOverflow
- OnOverflow<DataType>インタフェースを持つオブジェクトpublic void setOnUnderflow(OnUnderflow<DataType> onUnderflow)
データ読み込みときに、バッファアンダーフロー検出の際に呼び出される コールバックインタフェースを設定します。
onUnderflow
- OnUnderflow<DataType>インタフェースを持つオブジェクトpublic boolean isEmpty()
InPortのバッファが空かどうかを bool 値で返す。 空の場合は true, 未読データがある場合は false を返す。
public boolean setStreamable(org.omg.CORBA.portable.Streamable holderStreamable)
与えられたStreamableをCDR化で使用するStreamableへ設定する。 また、与えられたStreamableからvalueフィールドを取得し保持する。
holderStreamable
- HolderクラスのStreamable