TNB Library
クラス | 公開型 | 公開メンバ関数 | 限定公開型 | 限定公開変数類 | 全メンバ一覧
CFileCommunicator クラス

ファイル通信クラス [詳解]

#include <TnbFileCommunicator.h>

+ CFileCommunicator の継承関係図

クラス

struct  IWorker
 ファイル通信ワーカーインターフェース. [詳解]
 

公開型

enum  EState { OPENNING , CONNECTING , CLOSED }
 状態 [詳解]
 

公開メンバ関数

virtual bool CanReceive (void) const
 [確認] 受信可能確認. [詳解]
 
virtual bool CanSend (void) const
 [確認] 送信可能確認. [詳解]
 
 CFileCommunicator (void)
 コンストラクタ [詳解]
 
virtual EState Check (void) const
 [確認] チェック. [詳解]
 
virtual void Close (void)
 [処理] クローズ. [詳解]
 
virtual const TPropertyGetProperty (void) const
 [取得] 性能取得. [詳解]
 
virtual size_t GetReceivingDataSize (void) const
 [確認] 受信データ確認. [詳解]
 
virtual bool IsConnect (void) const
 [確認] 接続確認. [詳解]
 
virtual bool IsOpened (void) const
 [確認] オープン確認. [詳解]
 
virtual bool Open (void)
 [処理] オープン. [詳解]
 
virtual void Purge (void)
 [処理] パージ. [詳解]
 
virtual size_t Receive (size_t size, LPVOID _P)
 [処理] 受信. [詳解]
 
virtual size_t Send (size_t size, LPCVOID P)
 [処理] 送信. [詳解]
 
virtual bool SetReceiveTimeout (DWORD to)
 [設定] 受信待ち時間設定. [詳解]
 
void SetSendTimeout (DWORD to)
 [設定] 送信待ち時間設定. [詳解]
 
void SetWorker (IWorker *pWorker)
 [設定] ワーカーの指定. [詳解]
 
virtual ~CFileCommunicator (void)
 デストラクタ [詳解]
 

限定公開型

enum  { RETRY_INTERVAL = 10 }
 

限定公開変数類

TProperty m_property
 本クラスの性能 [詳解]
 
IWorkerm_pWorker
 ワーカー [詳解]
 
DWORD m_sendTimeout
 送信タイムアウト [詳解]
 

詳解

ファイル通信クラス

二つのファイルを使った、プロセス間通信をサポートします。

ファイルの読み書きは、 CFileCommunicator::IWorker を実装したクラスで行います。
一例として、 CFileCommunicationWorker が用意されています。
必要ファイル
TnbFileCommunicator.h
日付
07/09/13 新規作成
10/03/24 単発の同期転送に変更。
10/05/28 SetSendTimeout() を新規。 SetReceiveTimeout() を実装。

TnbFileCommunicator.h37 行目に定義があります。

列挙型メンバ詳解

◆ anonymous enum

anonymous enum
protected

TnbFileCommunicator.h308 行目に定義があります。

◆ EState

enum EState
inherited

状態

列挙値
OPENNING 

オープン状態

CONNECTING 

オープン&接続状態

CLOSED 

クローズ状態

TnbCommunication.h38 行目に定義があります。

構築子と解体子

◆ CFileCommunicator()

CFileCommunicator ( void  )

コンストラクタ

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

◆ ~CFileCommunicator()

virtual ~CFileCommunicator ( void  )
virtual

デストラクタ

TnbFileCommunicator.h109 行目に定義があります。

関数詳解

◆ CanReceive()

virtual bool CanReceive ( void  ) const
virtual

[確認] 受信可能確認.

戻り値
true受信可能。
false不可能。

ICommunicationを再実装しています。

TnbFileCommunicator.h203 行目に定義があります。

◆ CanSend()

virtual bool CanSend ( void  ) const
virtual

[確認] 送信可能確認.

戻り値
true送信可能。
false不可能。

ICommunicationを再実装しています。

TnbFileCommunicator.h193 行目に定義があります。

◆ Check()

virtual EState Check ( void  ) const
virtual

[確認] チェック.

状態を確認します。

戻り値
CONNECTINGオープン&接続状態
CLOSEDクローズ状態

ICommunicationを再実装しています。

TnbFileCommunicator.h281 行目に定義があります。

◆ Close()

virtual void Close ( void  )
virtual

[処理] クローズ.

ICommunicationを実装しています。

TnbFileCommunicator.h174 行目に定義があります。

◆ GetProperty()

virtual const TProperty & GetProperty ( void  ) const
virtual

[取得] 性能取得.

戻り値
性能情報

ICommunicationを実装しています。

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

◆ GetReceivingDataSize()

virtual size_t GetReceivingDataSize ( void  ) const
virtual

[確認] 受信データ確認.

戻り値
INVALID_SIZE不明。
上記以外受信可能データサイズ。

ICommunicationを再実装しています。

TnbFileCommunicator.h270 行目に定義があります。

◆ IsConnect()

virtual bool IsConnect ( void  ) const
virtualinherited

[確認] 接続確認.

戻り値
true接続中。
false切断中。

CCeUsbHid, CVmRs232c, CRs232c, CUsbHidで再実装されています。

TnbCommunication.h105 行目に定義があります。

◆ IsOpened()

virtual bool IsOpened ( void  ) const
virtual

[確認] オープン確認.

戻り値
trueオープン中。
falseクローズ中。

ICommunicationを実装しています。

TnbFileCommunicator.h183 行目に定義があります。

◆ Open()

virtual bool Open ( void  )
virtual

[処理] オープン.

戻り値
true成功。
false失敗。

ICommunicationを実装しています。

TnbFileCommunicator.h162 行目に定義があります。

◆ Purge()

virtual void Purge ( void  )
virtual

[処理] パージ.

通信のゴミを浄化

ICommunicationを再実装しています。

TnbFileCommunicator.h290 行目に定義があります。

◆ Receive()

virtual size_t Receive ( size_t  size,
LPVOID  _P 
)
virtual

[処理] 受信.

引数
[in]sizeサイズ。
[out]_Pデータ。size 分のメモリは確保しておく必要があります。
戻り値
INVALID_SIZEエラー。
0受信データなし。
上記以外受信データサイズ。

ICommunicationを実装しています。

TnbFileCommunicator.h244 行目に定義があります。

◆ Send()

virtual size_t Send ( size_t  size,
LPCVOID  P 
)
virtual

[処理] 送信.

引数
sizeサイズ。
Pデータ。
戻り値
INVALID_SIZEエラー。
上記以外送信データサイズ。

ICommunicationを実装しています。

TnbFileCommunicator.h215 行目に定義があります。

◆ SetReceiveTimeout()

virtual bool SetReceiveTimeout ( DWORD  to)
virtual

[設定] 受信待ち時間設定.

Receive() 実行時、受信できるデータが無い時に待つ時間を設定できます。

覚え書き
成功すると、プロパティが変更される可能性があります。
引数
toタイムアウト時間 (ms)。
戻り値
常に true。

ICommunicationを実装しています。

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

◆ SetSendTimeout()

void SetSendTimeout ( DWORD  to)

[設定] 送信待ち時間設定.

ファイルがオープンできない時、リトライし続ける時間を指定します。

引数
toタイムアウト(ms)

TnbFileCommunicator.h130 行目に定義があります。

◆ SetWorker()

void SetWorker ( IWorker pWorker)

[設定] ワーカーの指定.

覚え書き
本クラスのインスタンスとワーカーのインスタンスを同じスコープにおく場合、 ワーカーのほうを上に宣言しておくこと(先に構築され、後に破棄されるため)。
引数
pWorkerワーカー。

TnbFileCommunicator.h120 行目に定義があります。

メンバ詳解

◆ m_property

TProperty m_property
protected

本クラスの性能

TnbFileCommunicator.h311 行目に定義があります。

◆ m_pWorker

IWorker* m_pWorker
protected

ワーカー

TnbFileCommunicator.h310 行目に定義があります。

◆ m_sendTimeout

DWORD m_sendTimeout
protected

送信タイムアウト

TnbFileCommunicator.h309 行目に定義があります。