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

非同期書き込みクラス [詳解]

#include <TnbAsyncWriter.h>

+ CAsyncWriter の継承関係図

クラス

struct  ICommand
 非同期書き込みのコマンドインターフェース [詳解]
 

公開メンバ関数

 CAsyncWriter (void)
 コンストラクタ [詳解]
 
bool Close (void)
 [実行] クローズ. [詳解]
 
bool Command (ICommand *piCmd)
 [実行] コマンド [詳解]
 
bool IsAlive (void) const
 [確認] 開始チェック. [詳解]
 
virtual void OnThreadDispatchSetup (void)
 [通知] 開始通知. [詳解]
 
bool Seek (int iOffset, IWriter::ESeekMode eSeek=IWriter::TOP)
 [実行] シーク [詳解]
 
bool SetEnd (void)
 [実行] EOFを指定. [詳解]
 
bool SetPriority (int priority)
 [設定] 優先度設定. [詳解]
 
bool SetWriter (IWriter *pfw)
 [設定] ライター設定 [詳解]
 
bool Start (void)
 [設定] 開始. [詳解]
 
void Stop (void)
 [設定] 終了. [詳解]
 
bool Write (const IConstCollectionT< BYTE > &c)
 [実行] ファイル書き込み [詳解]
 
virtual ~CAsyncWriter (void)
 デストラクタ [詳解]
 

詳解

非同期書き込みクラス

書込み処理自体をスレッドで行いますので、
関数コールは即時リターンします。
覚え書き
本クラスは読込み機能はありません。
必要ファイル
TnbAsyncWriter.h
日付
06/05/02 新規作成
06/05/30 クラス名変更。スレッド以外で動くモードも追加。 ICommunication 実装。
06/07/07 InterfaceID概念、追加
06/08/23 CFileWriterEx から改名。
06/08/31 CommViewer に対応。
06/09/09 IsAlive() / IsConnect() 追加。 CanAccess() 廃止。 ECE_Connect , ECE_Disconnect イベント、追加。
06/10/16 IWriter を使用するように変更
07/02/08 クラス名、変更。
07/02/09 親クラス変更。
07/06/11 親クラスの Start() メソッドに対応。
09/08/27 SetPriority() のコメント補正。構成整理。
10/07/30 IReport 実装の廃止

TnbAsyncWriter.h49 行目に定義があります。

構築子と解体子

◆ CAsyncWriter()

CAsyncWriter ( void  )
explicit

コンストラクタ

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

◆ ~CAsyncWriter()

virtual ~CAsyncWriter ( void  )
virtual

デストラクタ

TnbAsyncWriter.h90 行目に定義があります。

関数詳解

◆ Close()

bool Close ( void  )

[実行] クローズ.

オープンしているWriterをCloseします。

戻り値
true要求成功
false失敗。 Start() を実行していない場合も失敗します。

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

◆ Command()

bool Command ( ICommand piCmd)

[実行] コマンド

引数
piCmdnew で作成した ICommand インターフェースを実装したクラス。
戻り値
true要求成功
false失敗。 Start() を実行していない場合も失敗します。

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

◆ IsAlive()

bool IsAlive ( void  ) const

[確認] 開始チェック.

Start() メソッドが実行されている状態か、チェックします。

戻り値
true開始している。
false停止している。

TnbAsyncWriter.h101 行目に定義があります。

◆ OnThreadDispatchSetup()

virtual void OnThreadDispatchSetup ( void  )
virtualinherited

[通知] 開始通知.

受信スレッドが開始されると、通知されます。

覚え書き
CThreadDispatch::Start() から返る前に作成されたスレッド上から呼ばれます。

CTinyListDialogExで再実装されています。

TnbThreadDispatch.h85 行目に定義があります。

◆ Seek()

bool Seek ( int  iOffset,
IWriter::ESeekMode  eSeek = IWriter::TOP 
)

[実行] シーク

引数
iOffsetファイルポインタの移動数。
eSeek移動開始ファイルポインタ位置。省略すると IWriter::TOP になります。
戻り値
trueシーク要求成功
false失敗。 Start() を実行していない場合も失敗します。

TnbAsyncWriter.h192 行目に定義があります。

◆ SetEnd()

bool SetEnd ( void  )

[実行] EOFを指定.

現在のファイルポインタの位置をEOFにします。

参照
https://msdn.microsoft.com/ja-jp/library/cc429774.aspx
戻り値
trueEOF書き込み要求成功
false失敗。 Start() を実行していない場合も失敗します。

TnbAsyncWriter.h204 行目に定義があります。

◆ SetPriority()

bool SetPriority ( int  priority)

[設定] 優先度設定.

書込みスレッドの優先度を指定出来ます。

引数
priority優先度(-2〜2, 15。0がノーマル。大きいほうが優先度大)
戻り値
true成功.
false失敗.

TnbAsyncWriter.h113 行目に定義があります。

◆ SetWriter()

bool SetWriter ( IWriter pfw)

[設定] ライター設定

引数
pfwオープンしてあるWriterを指定します。 Openしていないオブジェクトを渡すと失敗します。 pfw は参照しますので、使用中は破棄しないで下さい。
戻り値
true設定成功
false失敗

TnbAsyncWriter.h126 行目に定義があります。

◆ Start()

bool Start ( void  )

[設定] 開始.

本メソッド実行後、 Send() Write() SetEnd() Seek() 等使用できるようになります。

覚え書き
SetWriter() でライターの設定後に使用します。
戻り値
true要求成功
false失敗

TnbAsyncWriter.h144 行目に定義があります。

◆ Stop()

void Stop ( void  )

[設定] 終了.

覚え書き
オープンしているWriterをCloseします。 クローズ完了するまで、リターンしません。

TnbAsyncWriter.h163 行目に定義があります。

◆ Write()

bool Write ( const IConstCollectionT< BYTE > &  c)

[実行] ファイル書き込み

注意
2GByte以上は一度に書き込めません。
覚え書き
内部で一度 ByteVectoer に変換しています。
引数
c書き込みデータ。
戻り値
true書き込み要求成功
false失敗。 Start() を実行していない場合も失敗します。

TnbAsyncWriter.h180 行目に定義があります。