TNB Library
公開型 | 公開メンバ関数 | 全メンバ一覧
CPipe クラス

パイプアクセスクラス [詳解]

#include <TnbPipe.h>

+ CPipe の継承関係図

公開型

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

公開メンバ関数

virtual bool CanReceive (void) const
 [確認] 受信可能確認. [詳解]
 
virtual bool CanSend (void) const
 [確認] 送信可能確認. [詳解]
 
virtual EState Check (void) const
 [確認] チェック. [詳解]
 
virtual void Close (void)
 [処理] クローズ. [詳解]
 
 CPipe (void)
 コンストラクタ [詳解]
 
virtual const TPropertyGetProperty (void) const
 [取得] 性能取得. [詳解]
 
HANDLE GetReadHandle (void) const
 [取得] 読み込みハンドル取得 [詳解]
 
virtual size_t GetReceivingDataSize (void) const
 [確認] 受信データ確認. [詳解]
 
HANDLE GetWriteHandle (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)
 [処理] 送信. [詳解]
 
void SetPipeBufferSize (DWORD dwSize=0)
 [設定] パイプバッファサイズ設定 [詳解]
 
virtual bool SetReceiveTimeout (DWORD to)
 [設定] 受信待ち時間設定. [詳解]
 
void SettingNamedPipe (LPCTSTR lpszPipeName, bool isClient)
 [設定] パイプ名設定. [詳解]
 
virtual ~CPipe (void)
 デストラクタ [詳解]
 

詳解

パイプアクセスクラス

パイプを使用した通信が可能です。
必要ファイル
TnbPipe.h
日付
07/01/23 新規作成
07/02/09 親クラス変更。
07/06/11 親クラスの Start() メソッドに対応。
07/09/13 親クラス変更。
10/05/28 SetReceiveTimeout() を実装。
12/01/26 GetReceivingDataSize() の戻り値を修正。 @data 16/05/13 名前付きクライアント実装。サーバーは未確認。

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

列挙型メンバ詳解

◆ EState

enum EState
inherited

状態

列挙値
OPENNING 

オープン状態

CONNECTING 

オープン&接続状態

CLOSED 

クローズ状態

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

構築子と解体子

◆ CPipe()

CPipe ( void  )

コンストラクタ

TnbPipe.h44 行目に定義があります。

◆ ~CPipe()

virtual ~CPipe ( void  )
virtual

デストラクタ

TnbPipe.h51 行目に定義があります。

関数詳解

◆ CanReceive()

virtual bool CanReceive ( void  ) const
virtualinherited

[確認] 受信可能確認.

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

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

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

◆ CanSend()

virtual bool CanSend ( void  ) const
virtualinherited

[確認] 送信可能確認.

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

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

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

◆ Check()

virtual EState Check ( void  ) const
virtual

[確認] チェック.

状態を確認します。

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

ICommunicationを再実装しています。

TnbPipe.h253 行目に定義があります。

◆ Close()

virtual void Close ( void  )
virtual

[処理] クローズ.

ICommunicationを実装しています。

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

◆ GetProperty()

virtual const TProperty & GetProperty ( void  ) const
virtual

[取得] 性能取得.

戻り値
性能情報

ICommunicationを実装しています。

TnbPipe.h71 行目に定義があります。

◆ GetReadHandle()

HANDLE GetReadHandle ( void  ) const

[取得] 読み込みハンドル取得

戻り値
読み込みハンドル

TnbPipe.h271 行目に定義があります。

◆ GetReceivingDataSize()

virtual size_t GetReceivingDataSize ( void  ) const
virtual

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

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

ICommunicationを再実装しています。

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

◆ GetWriteHandle()

HANDLE GetWriteHandle ( void  ) const

[取得] 書き込みハンドル取得

戻り値
書き込みハンドル

TnbPipe.h280 行目に定義があります。

◆ 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を実装しています。

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

◆ Open()

virtual bool Open ( void  )
virtual

[処理] オープン.

戻り値
true成功。
false失敗。

ICommunicationを実装しています。

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

◆ Purge()

virtual void Purge ( void  )
virtual

[処理] パージ.

通信のゴミを浄化

ICommunicationを再実装しています。

TnbPipe.h263 行目に定義があります。

◆ Receive()

virtual size_t Receive ( size_t  size,
LPVOID  _P 
)
virtual

[処理] 受信.

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

ICommunicationを実装しています。

TnbPipe.h198 行目に定義があります。

◆ Send()

virtual size_t Send ( size_t  size,
LPCVOID  P 
)
virtual

[処理] 送信.

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

ICommunicationを実装しています。

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

◆ SetPipeBufferSize()

void SetPipeBufferSize ( DWORD  dwSize = 0)

[設定] パイプバッファサイズ設定

引数
dwSizeパイプのバッファのサイズをバイト単位で指定します。
システムはこの値を使って、適切なバッファリングメカニズムを決定します。
名前なしパイプの場合は省略するか、0 を指定すると、既定のバッファサイズが割り当てられます。

TnbPipe.h62 行目に定義があります。

◆ SetReceiveTimeout()

virtual bool SetReceiveTimeout ( DWORD  to)
virtual

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

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

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

ICommunicationを実装しています。

TnbPipe.h83 行目に定義があります。

◆ SettingNamedPipe()

void SettingNamedPipe ( LPCTSTR  lpszPipeName,
bool  isClient 
)

[設定] パイプ名設定.

本メソッドを使用することで名前付きパイプを使うことが出来ます。 Open() の前に使用してください。

引数
lpszPipeNameパイプ名。必ず "\\\\.\\pipe\\" で始まる名前にしてください。
isClienttrue なら名前付きパイプクライアント、 false ならサーバーをオープンします。

TnbPipe.h94 行目に定義があります。