TNB Library
公開メンバ関数 | 全メンバ一覧
IReport::IListener 構造体abstract

通信のリスナーインターフェース [詳解]

#include <TnbReport.h>

公開メンバ関数

virtual bool OnReportEvent (const CReportEvent &ev)=0
 [通知] イベント発生. [詳解]
 
virtual ~IListener (void)
 デストラクタ [詳解]
 

詳解

通信のリスナーインターフェース

IReport の通知用インターフェースです。
参照
IReport::SetCommListener()
必要ファイル
TnbReport.h
日付
06/05/11 新規作成

TnbReport.h242 行目に定義があります。

構築子と解体子

◆ ~IListener()

virtual ~IListener ( void  )
virtual

デストラクタ

TnbReport.h245 行目に定義があります。

関数詳解

◆ OnReportEvent()

virtual bool OnReportEvent ( const CReportEvent ev)
pure virtual

[通知] イベント発生.

データを受信時や、イベント発生時にコールされます。 ev のHasData()HasEvent()により、 どちらのタイミングでコールされたかわかります。

○イベント発生時
ev のGetEvent() により、 どのイベントが発生したか知ることが出来ます。
ReportEvent_Idle : Alive状態でデータ受信がないとき指定のタイミングで通知されます。 ただし使用できないサブクラスもあります。
ReportEvent_Error : エラー発生時に通知されます。ev の GetErrorCode() でエラーコードを知ることが出来ます。
ReportEvent_Connect : 通信可能になった時に通知されます。 戻り値で false を返した場合、 ReportEvent_Disconnect は通知されませんが、 通信不可能状態になります( ReportEvent_End が通知されるサブクラスもあります)。
ReportEvent_Disconnect :通信不能になった時に通知されます。戻り値は意味を持ちません。 また、ev のSend()は使用できません(既に通信不能のため)。
ReportEvent_End : Alive状態を終える時に通知されます。戻り値は意味を持ちません。 また、ev のSend()は使用できません(既に通信不能のため)。
ReportEvent_IrregularEnd : 強制的に切断された時(デバイスが抜かれた時など)に、ReportEvent_End を通知する前に、 通知されます(これの後に 必ず ReportEvent_End が通知されます)。 戻り値は意味を持ちません。また、ev のSend()は使用できません(既に通信不能のため)。
○データ受信時
ev のGetDataSize() により、受信した データのサイズを得ることが出来ます。 ev のGetData() により、受信した データのアドレスを得ることが出来ます。
引数
ev受信した内容(データかイベント)。
戻り値
true正常
false切断要求。 ReportEvent_End , ReportEvent_IrregularEnd イベントの場合、切断要求は無視されます。