54 m_in.pReport = pReport;
64 m_in.pListener = piCommListener;
73 ASSERT( m_in.pReport != NULL );
74 return m_in.pReport->GetReportName();
84 ASSERT( m_in.pReport != NULL );
85 return m_in.pReport->GetReportID();
96 ASSERT( m_in.pReport != NULL );
97 return m_thread.
IsAlive() && m_in.pReport->IsAlive();
107 ASSERT( m_in.pReport != NULL );
108 return m_in.pReport->IsConnect();
123 ASSERT( m_in.pReport != NULL );
124 m_in.pReport->SetIdleEventMode(iInterval);
135 if ( m_in.pReport != NULL )
142 m_in.pReport->SetListener(&m_in);
143 if ( m_in.pReport->Start() )
147 m_in.canRunnable =
true;
165 ASSERT( m_in.pReport != NULL );
166 m_in.canRunnable =
false;
168 m_in.pReport->Stop();
183 virtual bool Send(
size_t dataSize, LPCVOID lpcvData)
185 ASSERT( m_in.pReport != NULL );
186 return m_in.pReport->Send(dataSize, lpcvData);
195 ASSERT( m_in.pReport != NULL );
196 m_in.pReport->Purge();
215 IParentListener* pListener;
220 TInner(
int queueSize = 10000) : queue(queueSize), event(true, true), pReport(NULL), pListener(NULL)
226 if ( pListener != NULL )
230 return pListener->OnReportEvent(ev);
241 virtual DWORD Run(
void)
245 ::WaitForSingleObject(event, 100000);
252 if ( pListener != NULL )
256 pListener->OnReportEvent(e);
CThreadStatus & ReferThreadStatus(void)
[参照] 受信スレッド状態参照.
virtual void Stop(void)
[操作] 通信レポート停止.
virtual void SetIdleEventMode(int iInterval=0)
[設定] アイドルイベント設定
virtual bool Send(size_t dataSize, LPCVOID lpcvData)
[送信] データ送信
virtual CStr GetReportName(void) const
[取得] レポート名.
virtual DWORD GetReportID(void) const
[取得] レポート ID.
CBufferingReporter(int queueSize=10000)
コンストラクタ
virtual void SetListener(IReport::IListener *piCommListener=NULL)
[登録] 共通 Listner 登録.
virtual void Purge(void)
[設定] パージ.
virtual bool IsConnect(void) const
[確認] 接続されているか
virtual bool IsAlive(void) const
[確認] Aliveチェック.
virtual bool Start(void)
[操作] 通信レポート開始.
void SetEnvironment(IReport *pReport)
[設定] 環境設定.
size_t GetDataSize(void) const
[取得] データ長取得
bool HasEvent(void) const
[確認] Event(Error)を持っている
const BYTE * GetData(void) const
[取得] データアドレス取得
virtual bool Lock(DWORD dwTime=INFINITE) const
[排他] ロック
virtual INDEX Add(const TYP &t)
[追加] 要素追加.
virtual void Unlock(void) const
[排他] アンロック
static CStrT Fmt(const TCHAR *lpszFormat,...)
[作成] 書式付き文字列作成
bool IsAlive(void) const
[確認] スレッドが生きているか
bool SetRunner(IRunner *pRunner)
[設定] ランナー、設定
bool Stop(DWORD dwWait=15000)
[設定] スレッド停止 スレッドに対して停止要求します。
bool Start(LPCTSTR lpszName=NULL)
[設定] スレッド開始
virtual size_t GetSize(void) const
[取得] サイズ取得
virtual const TYP * ReferBuffer(void) const
[取得] データアドレス取得
virtual size_t SetElements(size_t size, const TYP *P=NULL)
[設定] 複数要素設定.
bool IsRunnable(void) const
[確認] 実行可能か否か
bool IsEmpty(void) const
[確認] 要素の有無確認.
virtual TYP Take(void)
[取得] 先頭要素取り出し.