TNB Library
|
パケットコマンダー. [詳解]
#include <TnbPacketCommander.h>
クラス | |
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 行目に定義があります。