TNB Library
公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
COverlapIoReader クラス

オーバーラップ入力管理クラス. [詳解]

#include <TnbOverlapReader.h>

+ COverlapIoReader の継承関係図

公開メンバ関数

void Attach (HANDLE hFile, size_t size)
 [設定] アタッチ. [詳解]
 
 COverlapIoReader (void)
 コンストラクタ [詳解]
 
void Detach (void)
 [設定] デタッチ. [詳解]
 
size_t Read (LPVOID _P, DWORD wait=0)
 [読込] 読込み. [詳解]
 
void SetIoControlCode (DWORD code)
 [設定] コントロールコード設定. [詳解]
 

限定公開メンバ関数

virtual bool OnRead (HANDLE hFile, LPVOID _P, size_t size, OVERLAPPED &overLapped)
 [通知] 読込み. [詳解]
 

詳解

オーバーラップ入力管理クラス.

API ::DeviceIoControl() による非同期の読込みをサポートします。読み込む情報がない時にロックさえるデバイスからの読込みに有効です。
必要ファイル
TnbOverlapReader.h
日付
07/09/13 新規作成
08/12/19 IsReading() 新規。

TnbOverlapReader.h248 行目に定義があります。

構築子と解体子

◆ COverlapIoReader()

COverlapIoReader ( void  )

コンストラクタ

TnbOverlapReader.h254 行目に定義があります。

関数詳解

◆ Attach()

void Attach ( HANDLE  hFile,
size_t  size 
)
inherited

[設定] アタッチ.

引数
[in]hFileFILE_FLAG_OVERLAPPED 付きでオープンしたハンドル。
[in]sizeサイズ。

TnbOverlapReader.h63 行目に定義があります。

◆ Detach()

void Detach ( void  )
inherited

[設定] デタッチ.

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

◆ OnRead()

virtual bool OnRead ( HANDLE  hFile,
LPVOID  _P,
size_t  size,
OVERLAPPED &  overLapped 
)
protectedvirtual

[通知] 読込み.

引数
[in]hFileハンドル。
[in]sizeサイズ。
[out]_P読込みバッファ。
[in,out]overLappedオーバーラップ情報。
戻り値
true成功
false失敗

COverlapReaderを再実装しています。

TnbOverlapReader.h278 行目に定義があります。

◆ Read()

size_t Read ( LPVOID  _P,
DWORD  wait = 0 
)
inherited

[読込] 読込み.

EventとWaitの付いた ::ReadFile です。

引数
[out]_P読み込むポインタをを指定します。 Attach() で指定したサイズが必要です。
[in]wait待ち時間(ms)。 INFINITE を指定すると、結果が帰るまで Waitします。
戻り値
INVALID_SIZEエラー。 ::GetLastError() でエラー詳細がわかります。
0データ無し。
上記以外成功。数値は読込みサイズ。

TnbOverlapReader.h91 行目に定義があります。

◆ SetIoControlCode()

void SetIoControlCode ( DWORD  code)

[設定] コントロールコード設定.

覚え書き
DeviceIoControl() の 第二引数を指定できます。
引数
codeコントロールコード

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