TNB Library
公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
CCommunicationReporterT< COMM > クラステンプレート

通信レポータテンプレート [詳解]

#include <TnbCommunicationReporter.h>

+ CCommunicationReporterT< COMM > の継承関係図

公開メンバ関数

 CCommunicationReporterT (DWORD dwInterfaceId=0)
 コンストラクタ [詳解]
 
void DisableReportViewer (void)
 [設定] レポートビュワー停止. [詳解]
 
int GetIdleInterval (void) const
 [取得] アイドルイベント間隔取得 [詳解]
 
virtual DWORD GetInterfaceId (void) const
 [取得] インターフェースID取得 [詳解]
 
virtual DWORD GetReportID (void) const
 [取得] レポート ID. [詳解]
 
virtual CStr GetReportName (void) const
 [取得] レポート名. [詳解]
 
virtual bool IsAlive (void) const
 [確認] Aliveチェック. [詳解]
 
virtual bool IsConnect (void) const
 [確認] 接続されているか [詳解]
 
virtual bool Lock (DWORD dwTime=INFINITE) const
 [排他] ロック [詳解]
 
COMM * operator-> (void)
 [参照] 通信クラス参照. [詳解]
 
const COMM * operator-> (void) const
 [参照] 通信クラス参照. [詳解]
 
virtual void Purge (void)
 [設定] パージ. [詳解]
 
COMM & ReferCommunication (void)
 [参照] 通信クラス参照. [詳解]
 
const COMM & ReferCommunication (void) const
 [参照] 通信クラス参照. [詳解]
 
CThreadStatusReferThreadStatus (void)
 [参照] 受信スレッド状態参照. [詳解]
 
virtual bool Send (size_t dataSize, LPCVOID lpcvData)
 [送信] データ送信 [詳解]
 
virtual void SetIdleEventMode (int iInterval=0)
 [設定] アイドルイベント設定 [詳解]
 
virtual void SetListener (IReport::IListener *piCommListener=NULL)
 [登録] 共通 Listner 登録. [詳解]
 
void SetReceivePollingTiming (DWORD dwPollingTiming)
 [設定] 受信チェック間隔設定. [詳解]
 
virtual bool Start (void)
 [操作] 通信レポート開始. [詳解]
 
virtual void Stop (void)
 [操作] 通信レポート停止. [詳解]
 
virtual void Unlock (void) const
 [排他] アンロック [詳解]
 
bool WaitConnect (DWORD dwTime) const
 [確認] 接続待ち [詳解]
 
virtual ~CCommunicationReporterT (void)
 デストラクタ [詳解]
 

限定公開メンバ関数

bool m_OnEvent (const CReportEvent &ev)
 [内部] コールバック通知実行 [詳解]
 
void m_OnSend (size_t sizeData, LPCVOID lpcvData)
 [内部] 送信情報通知 [詳解]
 
void ToViewer (LPCTSTR lpszText)
 [出力] 文字列出力. [詳解]
 
void ToViewer (size_t sizeData, LPCVOID lpcvData)
 [出力] ダンプ出力. [詳解]
 

詳解

template<typename COMM>
class TNB::CCommunicationReporterT< COMM >

通信レポータテンプレート

ICommunication を包括し、非同期通信をサポートします(IReport インターフェースを提供します)。  
覚え書き
CCommunicationReporter に比べ、テンプレートタイプで包括するため、記述が単純化できます。
必要ファイル
TnbCommunicationReporter.h
引数
COMMICommunication のサブクラス名
日付
09/03/31 新規作成
11/02/04 デストラクタ時にクローズするようにした。

TnbCommunicationReporter.h401 行目に定義があります。

構築子と解体子

◆ CCommunicationReporterT()

CCommunicationReporterT ( DWORD  dwInterfaceId = 0)
explicit

コンストラクタ

引数
dwInterfaceIdインターフェースID。省略すると0。 (これは、複数の通信クラスで共通のリスナーを使用する時、識別として使用します)

TnbCommunicationReporter.h411 行目に定義があります。

◆ ~CCommunicationReporterT()

virtual ~CCommunicationReporterT ( void  )
virtual

デストラクタ

TnbCommunicationReporter.h416 行目に定義があります。

関数詳解

◆ DisableReportViewer()

void DisableReportViewer ( void  )
inherited

[設定] レポートビュワー停止.

本メソッドを使用すると、通信ログの出力を行いません。 デフォルトは、出力を行います(ただしビルドの設定にもよります)。

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

◆ GetIdleInterval()

int GetIdleInterval ( void  ) const
inherited

[取得] アイドルイベント間隔取得

戻り値
0アイドルイベント発生無し
1以上間隔(ms)

TnbAbstractReport.h107 行目に定義があります。

◆ GetInterfaceId()

virtual DWORD GetInterfaceId ( void  ) const
virtualinherited

[取得] インターフェースID取得

戻り値
ID

IReportを実装しています。

TnbAbstractReport.h78 行目に定義があります。

◆ GetReportID()

virtual DWORD GetReportID ( void  ) const
virtualinherited

[取得] レポート ID.

種類の識別値を返します。

戻り値
ID

IReportを実装しています。

TnbCommunicationReporter.h92 行目に定義があります。

◆ GetReportName()

virtual CStr GetReportName ( void  ) const
virtualinherited

[取得] レポート名.

戻り値
名前

IReportを実装しています。

TnbCommunicationReporter.h82 行目に定義があります。

◆ IsAlive()

virtual bool IsAlive ( void  ) const
virtualinherited

[確認] Aliveチェック.

Open() メソッドが実行されている状態か、チェックします。

戻り値
true開始している。
false停止している。

IReportを実装しています。

TnbCommunicationReporter.h103 行目に定義があります。

◆ IsConnect()

virtual bool IsConnect ( void  ) const
virtualinherited

[確認] 接続されているか

戻り値
trueCTS ON状態。
falseCTS OFF状態。

IReportを実装しています。

TnbCommunicationReporter.h113 行目に定義があります。

◆ Lock()

virtual bool Lock ( DWORD  dwTime = INFINITE) const
virtualinherited

[排他] ロック

注意
他のクラスのLock()メソッドとは異なり、dwTimeは無視され、 INFINITEとして動作します。つまりどんな値を入れても、ロック 出来るまでリターンされません。
引数
dwTime値は無視されます。
戻り値
true 固定

ISynchronizedを実装しています。

CSyncSectionExで再実装されています。

TnbSync.h148 行目に定義があります。

◆ m_OnEvent()

bool m_OnEvent ( const CReportEvent ev)
protectedinherited

[内部] コールバック通知実行

引数
ev通知する内容
戻り値
true正常
false切断要求

TnbAbstractReport.h178 行目に定義があります。

◆ m_OnSend()

void m_OnSend ( size_t  sizeData,
LPCVOID  lpcvData 
)
protectedinherited

[内部] 送信情報通知

覚え書き
処理は開発用TRACEのみ
引数
sizeData送信するデータ長。
lpcvData送信するデータ。

TnbAbstractReport.h163 行目に定義があります。

◆ operator->() [1/2]

COMM * operator-> ( void  )

[参照] 通信クラス参照.

覚え書き
包括している通信クラスの参照を返します。
戻り値
通信クラス

TnbCommunicationReporter.h436 行目に定義があります。

◆ operator->() [2/2]

const COMM * operator-> ( void  ) const

[参照] 通信クラス参照.

覚え書き
包括している通信クラスの参照を返します。
戻り値
通信クラス

TnbCommunicationReporter.h456 行目に定義があります。

◆ Purge()

virtual void Purge ( void  )
virtualinherited

[設定] パージ.

覚え書き
通信のゴミを浄化

CAbstractReportを再実装しています。

TnbCommunicationReporter.h226 行目に定義があります。

◆ ReferCommunication() [1/2]

COMM & ReferCommunication ( void  )

[参照] 通信クラス参照.

覚え書き
包括している通信クラスの参照を返します。
戻り値
通信クラス

TnbCommunicationReporter.h426 行目に定義があります。

◆ ReferCommunication() [2/2]

const COMM & ReferCommunication ( void  ) const

[参照] 通信クラス参照.

覚え書き
包括している通信クラスの参照を返します。
戻り値
通信クラス

TnbCommunicationReporter.h446 行目に定義があります。

◆ ReferThreadStatus()

CThreadStatus & ReferThreadStatus ( void  )
inherited

[参照] 受信スレッド状態参照.

戻り値
スレッド状態の参照.

TnbCommunicationReporter.h236 行目に定義があります。

◆ Send()

virtual bool Send ( size_t  dataSize,
LPCVOID  lpcvData 
)
virtualinherited

[送信] データ送信

引数
dataSize送信するデータ長。
lpcvData送信するデータ。
戻り値
true成功。
false失敗。

IReportを実装しています。

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

◆ SetIdleEventMode()

virtual void SetIdleEventMode ( int  iInterval = 0)
virtualinherited

[設定] アイドルイベント設定

覚え書き
受信がない時、指定の間隔でコールバックを発生させることができます。 開始後、あるいは受信処理後、指定ms秒後にコールバックが始まります。 Open中に有無の切り替えは可能です。
SetReceivePollingTiming() とICommunication のサブクラスの 受信待ち時間 の 設定に精度が影響されます。
引数
iIntervalIdleイベントをあげる間隔を指定します。0なら、Idleイベントなし。

CAbstractReportを再実装しています。

TnbCommunicationReporter.h128 行目に定義があります。

◆ SetListener()

virtual void SetListener ( IReport::IListener piCommListener = NULL)
virtualinherited

[登録] 共通 Listner 登録.

覚え書き
登録できる IReport::IListener は一つだけです。
引数
piCommListenerリスナー。省略すると解除になります。

IReportを実装しています。

CBufferingReporterで再実装されています。

TnbAbstractReport.h69 行目に定義があります。

◆ SetReceivePollingTiming()

void SetReceivePollingTiming ( DWORD  dwPollingTiming)
inherited

[設定] 受信チェック間隔設定.

受信情報があるか、ポーリングするタイミングを指定します。

覚え書き
設定しない場合、1ms になっています。リアルタイム性が高い場合、この値を小さくしないと、 送信してから受信までに時間がかかってしまいます。
ICommunication のサブクラスの受信待ち時間 が 有効なら、それを有効にし、この受信チェック間隔は 0 にするのがベストです。
引数
dwPollingTimingタイミング(単位;ミリ秒)

TnbCommunicationReporter.h142 行目に定義があります。

◆ Start()

virtual bool Start ( void  )
virtualinherited

[操作] 通信レポート開始.

覚え書き
使用している通信クラスで、Openできるように設定後、本メソッドを使用します。
戻り値
true成功。
falseエラー。 ::GetLastError() で詳細取得可能(その値は SystemErrorToMessageText() で文字列化できます)。

IReportを実装しています。

TnbCommunicationReporter.h153 行目に定義があります。

◆ Stop()

virtual void Stop ( void  )
virtualinherited

[操作] 通信レポート停止.

覚え書き
受信用スレッドも停止します。

IReportを実装しています。

TnbCommunicationReporter.h189 行目に定義があります。

◆ ToViewer() [1/2]

void ToViewer ( LPCTSTR  lpszText)
protectedinherited

[出力] 文字列出力.

引数
lpszText文字列.

TnbAbstractReport.h219 行目に定義があります。

◆ ToViewer() [2/2]

void ToViewer ( size_t  sizeData,
LPCVOID  lpcvData 
)
protectedinherited

[出力] ダンプ出力.

引数
sizeDataデータサイズ.
lpcvDataデータ

TnbAbstractReport.h210 行目に定義があります。

◆ Unlock()

virtual void Unlock ( void  ) const
virtualinherited

[排他] アンロック

ISynchronizedを実装しています。

TnbSync.h155 行目に定義があります。

◆ WaitConnect()

bool WaitConnect ( DWORD  dwTime) const
inherited

[確認] 接続待ち

引数
dwTime待ち時間(ms)
戻り値
true接続
falseタイムアウト

TnbAbstractReport.h127 行目に定義があります。