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

メッセージキュー監視 (CE専用). [詳解]

#include <TnbCeMsgQueueWatcher.h>

+ CMsgQueueWatcherT< TYP > の継承関係図

クラス

struct  IListener
 メッセージキュー監視のリスナーインターフェース (CE専用). [詳解]
 

公開メンバ関数

 CMsgQueueWatcherT (void)
 コンストラクタ [詳解]
 
bool GetInfo (MSGQUEUEINFO &_info) const
 [取得] キュー情報. [詳解]
 
HANDLE GetSafeHandle (void) const
 [取得] ハンドル取得. [詳解]
 
bool IsStarted (void) const
 [確認] 監視確認. [詳解]
 
 operator HANDLE (void) const
 [取得] ハンドル取得. [詳解]
 
CThreadStatusReferThreadStatus (void)
 [参照] 監視スレッド状態参照. [詳解]
 
bool Send (const TYP &data, DWORD timeout=INFINITE, bool isAlert=false)
 [設定] 送信. [詳解]
 
void SetListener (IListener *P)
 [設定] リスナー設定. [詳解]
 
bool Start (LPCTSTR lpszQueueName, const MSGQUEUEOPTIONS &option, LPCTSTR lpszThreadName=NULL)
 [設定] 監視開始. [詳解]
 
bool Start (size_t maxMessagesCount=0, bool isRead=true, LPCTSTR lpszThreadName=NULL)
 [設定] 監視開始. [詳解]
 
bool Stop (void)
 [設定] 監視停止. [詳解]
 
 ~CMsgQueueWatcherT (void)
 デストラクタ [詳解]
 

限定公開メンバ関数

virtual DWORD Run (void)
 [動作] スレッド処理本体 [詳解]
 

詳解

template<typename TYP>
class TNB::CMsgQueueWatcherT< TYP >

メッセージキュー監視 (CE専用).

覚え書き
リスナー内で SendMessage を使う場合、 ReferThreadStatus()関連ウィンドウを指定する 必要があります。 CThread::SetOwnerHwnd() を参照してください。
必要ファイル
TnbCeMsgQueueWatcher.h
日付
09/10/01 新規作成
10/03/19 ReferThreadStatus() 追加。
10/03/30 Open/Close -> Start/Stop に変更。

TnbCeMsgQueueWatcher.h42 行目に定義があります。

構築子と解体子

◆ CMsgQueueWatcherT()

CMsgQueueWatcherT ( void  )

コンストラクタ

TnbCeMsgQueueWatcher.h74 行目に定義があります。

◆ ~CMsgQueueWatcherT()

~CMsgQueueWatcherT ( void  )

デストラクタ

TnbCeMsgQueueWatcher.h79 行目に定義があります。

関数詳解

◆ GetInfo()

bool GetInfo ( MSGQUEUEINFO &  _info) const

[取得] キュー情報.

引数
[out]_info情報が格納されます。
戻り値
true成功。
false失敗。 詳細は ::GetLastError() で得られます。

TnbCeMsgQueueWatcher.h197 行目に定義があります。

◆ GetSafeHandle()

HANDLE GetSafeHandle ( void  ) const

[取得] ハンドル取得.

戻り値
ハンドル.

TnbCeMsgQueueWatcher.h88 行目に定義があります。

◆ IsStarted()

bool IsStarted ( void  ) const

[確認] 監視確認.

戻り値
true監視中.
false未スタート.

TnbCeMsgQueueWatcher.h116 行目に定義があります。

◆ operator HANDLE()

operator HANDLE ( void  ) const

[取得] ハンドル取得.

戻り値
ハンドル.

TnbCeMsgQueueWatcher.h97 行目に定義があります。

◆ ReferThreadStatus()

CThreadStatus & ReferThreadStatus ( void  )

[参照] 監視スレッド状態参照.

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

TnbCeMsgQueueWatcher.h207 行目に定義があります。

◆ Run()

virtual DWORD Run ( void  )
protectedvirtual

[動作] スレッド処理本体

覚え書き
この関数にスレッドの処理を記述します。 ループで IsRunnable() をコールし、偽なら関数をリターンするように、 する必要が有ります。
戻り値
戻り値。 CThread::GetThreadResult() で得られる値です。

CThread::IRunnerを実装しています。

TnbCeMsgQueueWatcher.h221 行目に定義があります。

◆ Send()

bool Send ( const TYP &  data,
DWORD  timeout = INFINITE,
bool  isAlert = false 
)

[設定] 送信.

引数
data送信データ.
timeoutタイムアウト(ms)。
isAlerttrue ならアラート、 false なら通常送信。
戻り値
true成功。
false失敗。 詳細は ::GetLastError() で得られます。

TnbCeMsgQueueWatcher.h184 行目に定義があります。

◆ SetListener()

void SetListener ( IListener P)

[設定] リスナー設定.

引数
Pリスナー.

TnbCeMsgQueueWatcher.h106 行目に定義があります。

◆ Start() [1/2]

bool Start ( LPCTSTR  lpszQueueName,
const MSGQUEUEOPTIONS &  option,
LPCTSTR  lpszThreadName = NULL 
)

[設定] 監視開始.

引数
lpszQueueNameキュー名.
optionオプション.
lpszThreadNameスレッド名。デバッグ用です。
戻り値
true成功。
false失敗。 詳細は ::GetLastError() で得られます。

TnbCeMsgQueueWatcher.h152 行目に定義があります。

◆ Start() [2/2]

bool Start ( size_t  maxMessagesCount = 0,
bool  isRead = true,
LPCTSTR  lpszThreadName = NULL 
)

[設定] 監視開始.

引数
maxMessagesCountキューの大きさ.
isReadtrue なら読み込み、 false なら書き込みでオープンします。
lpszThreadNameスレッド名。デバッグ用です。
戻り値
true成功。
false失敗。 詳細は ::GetLastError() で得られます。

TnbCeMsgQueueWatcher.h129 行目に定義があります。

◆ Stop()

bool Stop ( void  )

[設定] 監視停止.

覚え書き
開始していない場合、何もしません。
戻り値
true成功。
false失敗。 詳細は ::GetLastError() で得られます。

TnbCeMsgQueueWatcher.h164 行目に定義があります。