|
TNB Library
|
パケットコマンダー. [詳解]
#include <TnbPacketCommander.h>
CPacketCommander の継承関係図クラス | |
| struct | IListener |
| パケットコマンダーのリスナー [詳解] | |
公開型 | |
| enum | EFailure { Timeout = -1 , SendError = -2 , Canceled = -3 , NotOpen = -4 } |
| 失敗種類 [詳解] | |
公開メンバ関数 | |
| void | CancelWaitResponse (DWORD threadId=0) |
| [設定] レスポンス待ちキャンセル. [詳解] | |
| virtual void | Close (void) |
| [設定] クローズ. [詳解] | |
| CPacketCommander (int iQueueSize=10000) | |
| コンストラクタ [詳解] | |
| virtual int | ExecuteCommand (IPacketCommandExecuter::IPacket &_response, const IPacketCommandExecuter::IPacket &command, DWORD timeout=500) |
| [実行] コマンド実行. [詳解] | |
| int | ExecuteCommand_Start (IPacketCommandExecuter::IPacket &_response, const IPacketCommandExecuter::IPacket &command) |
| [実行] コマンド実行(開始). [詳解] | |
| void | ExecuteCommand_Stop (IPacketCommandExecuter::IPacket &response) |
| [実行] コマンド実行(終了). [詳解] | |
| int | ExecuteCommand_Wait (IPacketCommandExecuter::IPacket &_response, DWORD timeout=500) |
| [実行] コマンド実行(待ち). [詳解] | |
| void | ExtendTimeout (DWORD threadId=0) |
| [設定] タイムアウト延長. [詳解] | |
| void | ExtendTimeoutEx (DWORD time, DWORD threadId=0) |
| [設定] タイムアウト延長. [詳解] | |
| size_t | GetQueueFreeSize (void) const |
| [取得] キュー空きサイズ取得. [詳解] | |
| bool | IsConnect (void) const |
| [取得] 接続確認. [詳解] | |
| bool | IsOpened (void) const |
| [取得] オープン確認. [詳解] | |
| bool | Open (IReport *pRep, bool withQueueing=false) |
| [設定] オープン. [詳解] | |
| void | PurgeQueue (void) |
| [設定] キュークリア [詳解] | |
| IReport * | ReferReporter (void) |
| [参照] レポーター参照. [詳解] | |
| int _deprecated | SendCommand (const IPacketCommandExecuter::IPacket &packet) |
| [実行] パケット送信. [詳解] | |
| virtual int | SendPacket (const IPacketCommandExecuter::IPacket &packet) |
| [実行] パケット送信. [詳解] | |
| bool | SendRawData (size_t size, const BYTE *pData) |
| [送信] 生データ送信. [詳解] | |
| void | SetAliveTime (DWORD time=DWORD_MAX) |
| [設定] キュー有効時間設定. [詳解] | |
| void _deprecated | SetBasicPacket (IPacketCommandExecuter::IPacket *pPacket) |
| [設定] 解析用パケット指定. [詳解] | |
| void | SetListener (IListener *pListener) |
| [設定] リスナー設定. [詳解] | |
| void | SetPacketFormat (IPacketCommandExecuter::IPacket *pPacket) |
| [設定] 解析用パケット指定. [詳解] | |
| void | SetTearminalTime (DWORD time=DWORD_MAX) |
| [設定] 終端時間設定. [詳解] | |
| ~CPacketCommander (void) | |
| デストラクタ [詳解] | |
パケットコマンダー.
コマンド送信〜応答待ちまでをサポートしています。 タイムアウト時間は、 ExecuteCommand() メソッドで指定可能です。
TnbPacketCommander.h の 654 行目に定義があります。
| enum EFailure |
失敗種類
| 列挙値 | |
|---|---|
| Timeout | タイムアウト |
| SendError | 送信エラー |
| Canceled | キャンセル |
| NotOpen | オープンしてない |
TnbPacketCommander.h の 659 行目に定義があります。
| CPacketCommander | ( | int | iQueueSize = 10000 | ) |
| ~CPacketCommander | ( | void | ) |
デストラクタ
TnbPacketCommander.h の 729 行目に定義があります。
| void CancelWaitResponse | ( | DWORD | threadId = 0 | ) |
[設定] レスポンス待ちキャンセル.
Canceled(-4) になります。 | threadId | スレッドID。省略すると、全てのタスクをキャンセル。 |
TnbPacketCommander.h の 1068 行目に定義があります。
|
virtual |
|
virtual |
[実行] コマンド実行.
コマンドパケットを送信し、応答があるか、タイムアウトするまで関数はリターンしません。
| [out] | _response | レスポンス型。成功時、結果が格納されます。 |
| [in] | command | コマンド型。 |
| [in] | timeout | レスポンスのタイムアウト時間(ms). |
| 0以上 | 成功。 |
| Timeout | タイムアウト。 |
| SendError | 送信エラー。 |
| NotOpen | 未オープン。 |
| 0未満 | その他のエラー(主に IPacketCommandExecuter::IPacket::Deserialize() の戻り値)。 |
IPacketCommandExecuterを実装しています。
TnbPacketCommander.h の 915 行目に定義があります。
| int ExecuteCommand_Start | ( | IPacketCommandExecuter::IPacket & | _response, |
| const IPacketCommandExecuter::IPacket & | command | ||
| ) |
[実行] コマンド実行(開始).
コマンドパケットを送信し、応答待ち準備をします。
| [out] | _response | レスポンス型。成功時、結果が格納されます。 |
| [in] | command | コマンド型。 |
| 0以上 | 成功。終了後、必ず ExecuteCommand_Stop() をコールしてください。 |
| Timeout | タイムアウト。 |
| SendError | 送信エラー。 |
| NotOpen | 未オープン。 |
| 0未満 | その他のエラー(主に IPacketCommandExecuter::IPacket::Deserialize() の戻り値)。 |
TnbPacketCommander.h の 938 行目に定義があります。
| void ExecuteCommand_Stop | ( | IPacketCommandExecuter::IPacket & | response | ) |
[実行] コマンド実行(終了).
ExecuteCommand_Start() を使った場合、必ず本メソッドを使用してください。
| response | レスポンス型。ExecuteCommand_Start() と同じオブジェクトを使用してください。 |
TnbPacketCommander.h の 1028 行目に定義があります。
| int ExecuteCommand_Wait | ( | IPacketCommandExecuter::IPacket & | _response, |
| DWORD | timeout = 500 |
||
| ) |
[実行] コマンド実行(待ち).
応答があるか、タイムアウトするまで関数はリターンしません。
| [out] | _response | レスポンス型。成功時、結果が格納されます。 ExecuteCommand_Start() と同じオブジェクトを使用してください。 |
| [in] | timeout | レスポンスのタイムアウト時間(ms). |
| 0以上 | 成功。 |
| Timeout | タイムアウト。 |
| SendError | 送信エラー(ExecuteCommand_Start() が成功していない)。 |
| NotOpen | 未オープン。 |
| 0未満 | その他のエラー(主に IPacketCommandExecuter::IPacket::Deserialize() の戻り値)。 |
TnbPacketCommander.h の 976 行目に定義があります。
| void ExtendTimeout | ( | DWORD | threadId = 0 | ) |
[設定] タイムアウト延長.
コマンドの応答待ちを延長します。これをコールした時にタイムアウト時間 の再設定が行われます(例えば、タイムアウト5秒の設定の場合で、コマンド送信後、 2秒後に本メソッドをコールすると、全部で7秒間、レスポンスを待ちます)。
| threadId | スレッドID。省略すると、全てのタスクを延長。 |
TnbPacketCommander.h の 1045 行目に定義があります。
| void ExtendTimeoutEx | ( | DWORD | time, |
| DWORD | threadId = 0 |
||
| ) |
[設定] タイムアウト延長.
コマンドの応答待ちを指定時間、延長します。
| time | 延長する時間(ms) |
| threadId | スレッドID。省略すると、全てのタスクを延長。 |
TnbPacketCommander.h の 1057 行目に定義があります。
| size_t GetQueueFreeSize | ( | void | ) | const |
| bool IsConnect | ( | void | ) | const |
| bool IsOpened | ( | void | ) | const |
| bool Open | ( | IReport * | pRep, |
| bool | withQueueing = false |
||
| ) |
[設定] オープン.
| pRep | レポータ。クローズするまで破棄しないでください。 |
| withQueueing | ture ならキューを使います。 |
| true | 成功. |
| false | 失敗. |
TnbPacketCommander.h の 826 行目に定義があります。
| void PurgeQueue | ( | void | ) |
[設定] キュークリア
TnbPacketCommander.h の 1108 行目に定義があります。
| IReport * ReferReporter | ( | void | ) |
| int _deprecated SendCommand | ( | const IPacketCommandExecuter::IPacket & | packet | ) |
[実行] パケット送信.
| packet | パケット |
| 0以上 | 成功。 |
| SendError | 送信エラー。 |
| NotOpen | 未オープン。 |
TnbPacketCommander.h の 897 行目に定義があります。
|
virtual |
[実行] パケット送信.
| packet | パケット |
| 0以上 | 成功。 |
| SendError | 送信エラー。 |
| NotOpen | 未オープン。 |
IPacketCommandExecuterを実装しています。
TnbPacketCommander.h の 867 行目に定義があります。
| bool SendRawData | ( | size_t | size, |
| const BYTE * | pData | ||
| ) |
[送信] 生データ送信.
任意のデータを送信することが出来ます。
| size | サイズ |
| pData | データ |
| true | 成功. |
| false | 失敗. |
TnbPacketCommander.h の 1081 行目に定義があります。
| void SetAliveTime | ( | DWORD | time = DWORD_MAX | ) |
[設定] キュー有効時間設定.
キュー格納後、一定時間受信がない場合、キュー内容を破棄することが出来ます。
| time | キューの有効時間(ms)。最後に受信して解析してから指定時間経過したら、キューの先頭の一バイトを破棄して、 再度解析をします。省略時は無効( DWORD_MAX )です。 |
TnbPacketCommander.h の 772 行目に定義があります。
| void _deprecated SetBasicPacket | ( | IPacketCommandExecuter::IPacket * | pPacket | ) |
[設定] 解析用パケット指定.
| pPacket | パケット |
TnbPacketCommander.h の 750 行目に定義があります。
| void SetListener | ( | IListener * | pListener | ) |
| void SetPacketFormat | ( | IPacketCommandExecuter::IPacket * | pPacket | ) |
[設定] 解析用パケット指定.
| pPacket | パケット |
TnbPacketCommander.h の 740 行目に定義があります。
| void SetTearminalTime | ( | DWORD | time = DWORD_MAX | ) |
[設定] 終端時間設定.
キュー格納後、一定時間受信がない場合にキュー内容を解析するようにします。
| time | 終端時間(ms)。 |
TnbPacketCommander.h の 784 行目に定義があります。