|
TNB Library
|
キューイングレポートクラス [詳解]
#include <TnbQueueingReporter.h>
CQueueingReporter の継承関係図クラス | |
| 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 行目に定義があります。