TNB Library
|
キューイングレポートクラス [詳解]
#include <TnbQueueingReporter.h>
クラス | |
struct | IListener |
キューイングレポートのリスナーインターフェース [詳解] | |
公開メンバ関数 | |
CQueueingReporter (int iQueueSize=10000) | |
コンストラクタ [詳解] | |
size_t | GetQueueFreeSize (void) const |
[取得] キュー空きサイズ取得. [詳解] | |
bool | IsAlive (void) const |
[確認] Aliveチェック. [詳解] | |
bool | IsConnect (void) const |
[確認] 接続チェック [詳解] | |
void | Purge (void) |
[消去] キューバッファクリア. [詳解] | |
IReport * | ReferReport (void) |
[取得] レポータ取得 [詳解] | |
const IReport * | ReferReport (void) const |
[取得] レポータ取得 [詳解] | |
void | ResetEnvironment (void) |
[設定] 環境リセット [詳解] | |
bool | Send (size_t dataSize, LPCVOID lpcData) |
[送信] データ送信. [詳解] | |
void | SetAliveTime (DWORD time=DWORD_MAX) |
[設定] キュー有効時間設定. [詳解] | |
void | SetEnvironment (IReport *pReport, IListener *pListener) |
[設定] 環境設定 [詳解] | |
void | SetTearminalTime (DWORD time=DWORD_MAX) |
[設定] 終端時間設定. [詳解] | |
~CQueueingReporter (void) | |
デストラクタ [詳解] | |
キューイングレポートクラス
IReport から読みだしたデータをキューイングしています。そのデータを IListener で取得することが可能です。 キューイングしているデータのため、解析が容易になります。
class CFoo : private CQueueingReporter::IListener { public: /// オープン. bool Open(IReport* pReport) { m_queue.SetAliveTime(100); //100ms 経ってもパケットがそろわないのは破棄 m_queue.SetEnvironment(pReport, this); ; } private: virtual bool OnReportEvent(const CReportEvent& ev) { ASSERT( ! ev.HasData() ); ev.GetEvent(); return true; } virtual size_t OnReportData(bool boIsLast, const IConstCollectionT<BYTE>& c) { // (c を解析) if ( r == 0 ) { return 0; // 解析するにはデータが足りない } if ( r < 0 ) { return 1; // ヘッダ情報がおかしいので 1byte 捨てる } // (パケット確認) return r; // 解析したパケット数を返す } }; |
TnbQueueingReporter.h の 84 行目に定義があります。
|
explicit |
~CQueueingReporter | ( | void | ) |
デストラクタ
TnbQueueingReporter.h の 139 行目に定義があります。
size_t GetQueueFreeSize | ( | void | ) | const |
bool IsAlive | ( | void | ) | const |
[確認] Aliveチェック.
各サブクラスの開始メソッドが実行されている状態か、チェックします。
true | 開始している。 |
false | 停止している。 |
TnbQueueingReporter.h の 204 行目に定義があります。
bool IsConnect | ( | void | ) | const |
void Purge | ( | void | ) |
IReport * ReferReport | ( | void | ) |
const IReport * ReferReport | ( | void | ) | const |
void ResetEnvironment | ( | void | ) |
[設定] 環境リセット
TnbQueueingReporter.h の 163 行目に定義があります。
bool Send | ( | size_t | dataSize, |
LPCVOID | lpcData | ||
) |
[送信] データ送信.
dataSize | 送信するデータ長。 |
lpcData | 送信するデータ。 |
true | 成功 |
false | 失敗 |
TnbQueueingReporter.h の 235 行目に定義があります。
void SetAliveTime | ( | DWORD | time = DWORD_MAX | ) |
[設定] キュー有効時間設定.
キュー格納後、一定時間受信がない場合、キュー内容を破棄することが出来ます。
time | キューの有効時間(ms)。最後に受信して解析してから指定時間経過したら、キューの先頭の一バイトを破棄して、 再度解析をします。省略時は無効( DWORD_MAX )です。 |
TnbQueueingReporter.h の 180 行目に定義があります。
[設定] 環境設定
pReport | レポート。 |
pListener | リスナー。 |
TnbQueueingReporter.h の 151 行目に定義があります。
void SetTearminalTime | ( | DWORD | time = DWORD_MAX | ) |
[設定] 終端時間設定.
キュー格納後、一定時間受信がない場合にキュー内容を解析するようにします。
time | 終端時間(ms)。 |
TnbQueueingReporter.h の 192 行目に定義があります。