TNB Library
クラス | 公開型 | 公開メンバ関数 | 全メンバ一覧
CTemporaryCommunicator クラス

テンポラリ通信クラス [詳解]

#include <TnbTemporaryCommunicator.h>

+ CTemporaryCommunicator の継承関係図

公開型

enum  EState { OPENNING , CONNECTING , CLOSED }
 状態 [詳解]
 

公開メンバ関数

void AddReceivingData (const IConstCollectionT< BYTE > &data, DWORD delay=0)
 [処理] 受信情報に追加. [詳解]
 
void AddReceivingData (size_t size, LPCVOID pData, DWORD delay=0)
 [処理] 受信情報に追加. [詳解]
 
virtual bool CanReceive (void) const
 [確認] 受信可能確認. [詳解]
 
virtual bool CanSend (void) const
 [確認] 送信可能確認. [詳解]
 
virtual EState Check (void) const
 [確認] チェック. [詳解]
 
virtual void Close (void)
 [処理] クローズ. [詳解]
 
 CTemporaryCommunicator (void)
 コンストラクタ [詳解]
 
virtual const TPropertyGetProperty (void) const
 [取得] 性能取得 [詳解]
 
virtual size_t GetReceivingDataSize (void) const
 [確認] 受信データ確認. [詳解]
 
virtual bool IsConnect (void) const
 [確認] 接続確認. [詳解]
 
virtual bool IsOpened (void) const
 [確認] オープン確認. [詳解]
 
virtual bool Open (void)
 [処理] オープン. [詳解]
 
virtual void Purge (void)
 [処理] パージ. [詳解]
 
virtual size_t Receive (size_t size, LPVOID _P)
 [処理] 受信. [詳解]
 
CByteVectorReferSentData (void)
 [取得] 送信情報参照. [詳解]
 
CVectorT< CByteVector > & ReferSentRowData (void)
 [取得] 送信情報参照. [詳解]
 
virtual size_t Send (size_t size, LPCVOID P)
 [処理] 送信. [詳解]
 
void SetPacketSize (DWORD receivePacketSize, DWORD sendPacketSize)
 [設定] パケットサイズ設定. [詳解]
 
virtual bool SetReceiveTimeout (DWORD to)
 [設定] 受信待ち時間設定. [詳解]
 
void SetSendErrorMode (bool isSendError)
 [設定] 送信エラーモード設定. [詳解]
 

詳解

テンポラリ通信クラス

ICommunication を実装しています。
送信で本クラスの保持するByte区切りのメモリにプールし、受信でそのメモリから読み出します。
覚え書き
主に 通信モジュールの単体テストに使用されます。
必要ファイル
TnbTemporaryCommunicator.h
日付
06/05/31 新規作成
06/06/08 名前変更
06/07/07 InterfaceID概念、追加
06/08/31 CommViewer に対応。
06/09/09 IsAlive() / IsConnect() 追加。 CanAccess() 廃止。 ECE_Connect , ECE_Disconnect イベント、追加。
07/02/09 親クラス変更。
07/05/10 クラス名、変更。
07/06/11 親クラスの Start() メソッドに対応。
07/09/13 親クラス変更。
08/12/08 受信タイミングを変えられるようにした。
10/05/28 SetReceiveTimeout() を実装。
10/08/24 構造変更。受信タイミングを自由化。
11/07/06 名前変更。 SetSendErrorMode() 追加。
11/07/07 オープン状態を用意.
12/03/15 ReferSentRowData() を新規。

TnbTemporaryCommunicator.h50 行目に定義があります。

列挙型メンバ詳解

◆ EState

enum EState
inherited

状態

列挙値
OPENNING 

オープン状態

CONNECTING 

オープン&接続状態

CLOSED 

クローズ状態

TnbCommunication.h38 行目に定義があります。

構築子と解体子

◆ CTemporaryCommunicator()

コンストラクタ

TnbTemporaryCommunicator.h56 行目に定義があります。

関数詳解

◆ AddReceivingData() [1/2]

void AddReceivingData ( const IConstCollectionT< BYTE > &  data,
DWORD  delay = 0 
)

[処理] 受信情報に追加.

Receive() で受信されるデータを追加します。

引数
dataデータ。
delay遅延(ms)。受信されるまでの時間を指定出来ます。

TnbTemporaryCommunicator.h242 行目に定義があります。

◆ AddReceivingData() [2/2]

void AddReceivingData ( size_t  size,
LPCVOID  pData,
DWORD  delay = 0 
)

[処理] 受信情報に追加.

Receive() で受信されるデータを追加します。

引数
sizeデータサイズ。
pDataデータ。
delay遅延(ms)。受信されるまでの時間を指定出来ます。

TnbTemporaryCommunicator.h223 行目に定義があります。

◆ CanReceive()

virtual bool CanReceive ( void  ) const
virtualinherited

[確認] 受信可能確認.

戻り値
true受信可能。
false不可能。

CCeUsbHid, CFileCommunicator, CVmRs232c, CUsbHidで再実装されています。

TnbCommunication.h119 行目に定義があります。

◆ CanSend()

virtual bool CanSend ( void  ) const
virtualinherited

[確認] 送信可能確認.

戻り値
true送信可能。
false不可能。

CCeUsbHid, CFileCommunicator, CVmRs232c, CUsbHidで再実装されています。

TnbCommunication.h112 行目に定義があります。

◆ Check()

virtual EState Check ( void  ) const
virtual

[確認] チェック.

状態を確認します。

戻り値
CONNECTING オープン&接続状態
CLOSED クローズ

ICommunicationを再実装しています。

TnbTemporaryCommunicator.h200 行目に定義があります。

◆ Close()

virtual void Close ( void  )
virtual

[処理] クローズ.

ICommunicationを実装しています。

TnbTemporaryCommunicator.h108 行目に定義があります。

◆ GetProperty()

virtual const TProperty & GetProperty ( void  ) const
virtual

[取得] 性能取得

戻り値
性能情報

ICommunicationを実装しています。

TnbTemporaryCommunicator.h64 行目に定義があります。

◆ GetReceivingDataSize()

virtual size_t GetReceivingDataSize ( void  ) const
virtual

[確認] 受信データ確認.

戻り値
受信可能データサイズ。

ICommunicationを再実装しています。

TnbTemporaryCommunicator.h180 行目に定義があります。

◆ IsConnect()

virtual bool IsConnect ( void  ) const
virtualinherited

[確認] 接続確認.

戻り値
true接続中。
false切断中。

CCeUsbHid, CVmRs232c, CRs232c, CUsbHidで再実装されています。

TnbCommunication.h105 行目に定義があります。

◆ IsOpened()

virtual bool IsOpened ( void  ) const
virtual

[確認] オープン確認.

戻り値
true

ICommunicationを実装しています。

TnbTemporaryCommunicator.h118 行目に定義があります。

◆ Open()

virtual bool Open ( void  )
virtual

[処理] オープン.

戻り値
true

ICommunicationを実装しています。

TnbTemporaryCommunicator.h98 行目に定義があります。

◆ Purge()

virtual void Purge ( void  )
virtual

[処理] パージ.

ICommunicationを再実装しています。

TnbTemporaryCommunicator.h208 行目に定義があります。

◆ Receive()

virtual size_t Receive ( size_t  size,
LPVOID  _P 
)
virtual

[処理] 受信.

引数
[in]sizeサイズ。
[out]_Pデータ。size 分のメモリは確保しておく必要があります。
戻り値
受信データサイズ。

ICommunicationを実装しています。

TnbTemporaryCommunicator.h150 行目に定義があります。

◆ ReferSentData()

CByteVector & ReferSentData ( void  )

[取得] 送信情報参照.

Send() で送信したデータを取得できます。データは連結されています。

覚え書き
変更する場合、 Lock して行うようにしてください。
戻り値
データ。

TnbTemporaryCommunicator.h261 行目に定義があります。

◆ ReferSentRowData()

CVectorT< CByteVector > & ReferSentRowData ( void  )

[取得] 送信情報参照.

Send() で送信したデータを取得できます。

覚え書き
変更する場合、 Lock して行うようにしてください。
戻り値
データ。

TnbTemporaryCommunicator.h272 行目に定義があります。

◆ Send()

virtual size_t Send ( size_t  size,
LPCVOID  P 
)
virtual

[処理] 送信.

引数
sizeサイズ。
Pデータ。
戻り値
INVALID_SIZEエラー。
上記以外送信データサイズ。

ICommunicationを実装しています。

TnbTemporaryCommunicator.h130 行目に定義があります。

◆ SetPacketSize()

void SetPacketSize ( DWORD  receivePacketSize,
DWORD  sendPacketSize 
)

[設定] パケットサイズ設定.

送信できるサイズや受信できるサイズを指定できます。性能に影響します。

引数
receivePacketSize
sendPacketSize

TnbTemporaryCommunicator.h75 行目に定義があります。

◆ SetReceiveTimeout()

virtual bool SetReceiveTimeout ( DWORD  to)
virtual

[設定] 受信待ち時間設定.

Receive() 実行時、受信できるデータが無い時に待つ時間を設定できます。

覚え書き
成功すると、プロパティが変更される可能性があります。
引数
toタイムアウト時間 (ms)。
戻り値
常に true。

ICommunicationを実装しています。

TnbTemporaryCommunicator.h88 行目に定義があります。

◆ SetSendErrorMode()

void SetSendErrorMode ( bool  isSendError)

[設定] 送信エラーモード設定.

引数
isSendErrortrue を指定すると、 Send() で INVALID_SIZE を返すようになります。 false なら Send() は正常動作します。

TnbTemporaryCommunicator.h282 行目に定義があります。