![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |
#include <SFXStreamWriter.h.hpp>
class SFXStreamWriter : public SFXOutputStream;
SFMTYPEDEFCLASS(SFXStreamWriter)


ファイルや TCP ソケットなどのストリームからデータを書き込むときに使います。
書き込むデータの種類に応じて、SFXStreamWriter クラスを継承する SFXBinaryStreamWriter クラス、 SFXAnsiStringStreamWriter クラス、 SFXWideStringStreamWriter クラスのいずれかを使います。
| コンストラクタ/デストラクタ |
|---|
|
SFXStreamWriter( Void ) SFXStreamWriter クラスのコンストラクタです。
|
|
~SFXStreamWriter( Void ) SFXStreamWriter クラスのデストラクタです。
|
| パブリック関数 | |
|---|---|
| Void |
Attach(
SFXOutputStreamPtr stream
) SFXOutputStream クラスのインスタンスの動作や管理権限を SFXStreamWriter クラスのインスタンスにデリゲート(委譲)します。
|
| Void |
Cancel( Void ) ストレージクラスの Cancel 関数を呼び出します。登録したコールバック関数もキャンセルします。
|
| SFXOutputStreamPtr |
Detach( Void ) SFXStreamWriter クラスのインスタンスの動作と管理権限を SFXOutputStream クラスのインスタンスにデリゲート(委譲)します。
|
| SFCError |
Flush( Void ) Flush( CallbackSPP spp , VoidPtr reference ) 書き込んだデータをフラッシュします。
|
| UInt32 |
GetWritableSize( Void ) 書き込み可能なデータ サイズを取得します。
|
| Void |
Release( Void ) ストリームを解放します。
|
| SFCError |
ResetTrigger( Void ) コールバック関数が呼ばれるトリガーをリセットします。
|
| SFCError |
SetTrigger(
UInt32 size
) SetTrigger( VoidConstPtr buffer , UInt32 size ) SetTrigger( SFXBufferConstRef buffer ) コールバック関数が呼ばれるトリガーを設定します。
|
| Bool |
Triggers( Void ) トリガーによりコールバック関数が呼ばれたか判定します。
|
| SFCError |
Write(
SFXBufferConstRef buffer
) Write( VoidConstPtr buffer , UInt32 size ) ストリームにデータを書き込みます。
|
| 型 |
|---|
|
CallbackSPP
(SFXStream から継承)
コールバック関数を表す型です。
|
[ public, explicit ] SFXStreamWriter(Void);
[ public, virtual ] virtual ~SFXStreamWriter(Void);
[ public ] Void Attach( SFXOutputStreamPtr stream // 設定するストリーム );
SFXStreamWriter::Attach 関数を呼び出す前に設定されていた SFXStreamWriter クラスのインスタンスの内容は破棄されます。
デリゲートとは : オブジェクト指向プログラミングにおいて、あるオブジェクトの振る舞いを別のオブジェクトに肩代わりして振る舞ってもらうことです。 日本語では、「委譲」と訳されます。
[ public, virtual ] Void Cancel(Void);
ファイルの場合は SFXFile::Cancel 関数を、TCP ソケットの場合は SFXTCPSocket::Cancel 関数を呼び出します。
また、SFXStreamWriter::Flush 関数によるコールバック関数の登録もキャンセルします。
[ public ] SFXOutputStreamPtr Detach(Void);
[ public, virtual ] SFCError Flush(Void);
[ public, virtual ] SFCError Flush( CallbackSPP spp // コールバック関数 VoidPtr reference // コールバック関数へ渡すデータ );
コールバック関数を登録するタイプと登録しないタイプがあります。利用可能なタイプはストレージの種類に依存します。
例えば、TCP ストリームはコールバック関数を登録するタイプだけが利用可能です。ファイル ストリームは両方のタイプが使えます。
コールバック関数を登録しない SFXStreamWriter::Flush 関数を呼び出すと、データはすぐにフラッシュされます。
[ public, virtual, const ] UInt32 GetWritableSize(Void);
書き込むデータ サイズが、SFXStreamWriter::GetWritableSize 関数で得られる値より大きい場合、SFXStreamWriter::Flush 関数を呼び出す必要があります。
[ public ] Void Release(Void);
[ public, virtual ] SFCError ResetTrigger(Void);
SFXStreamWriter::SetTrigger 関数で設定したコールバック関数が呼ばれるトリガーをリセットします。
[ public, virtual ] SFCError SetTrigger( UInt32 size // 出力ストリームを介して書き込まれたデータのサイズ );
[ public, virtual ] SFCError SetTrigger( SFXBufferConstRef buffer // 出力ストリームを介して書き込まれたバッファ オブジェクト );
[ public, virtual ] SFCError SetTrigger( VoidConstPtr buffer // 出力ストリームを介して書き込まれたデータ UInt32 size // 出力ストリームを介して書き込まれたデータのサイズ );
コールバック付きの SFXStreamWriter::Flush 関数を呼ぶと、ストリームのバッファが一杯になったときや、データの終端でコールバック関数が呼び出されます。
SFXStreamWriter::SetTrigger 関数の size パラメータを指定した場合、その文字数を書き込む毎にコールバック関数が呼び出されます。
buffer パラメータを指定した場合は、それと同じデータを書き込む毎にコールバック関数が呼び出されます。
改行文字を書き込む毎にコールバック関数を呼び出す方法
SetTrigger("\r\n", 2)
[ public, virtual, const ] Bool Triggers(Void);
SFXStreamWriter::Triggers 関数は SFXStreamWriter::Flush 関数で登録したコールバック関数の中で使います。
[ public, virtual ] SFCError Write( SFXBufferConstRef buffer // 書き込むデータ );
[ public, virtual ] SFCError Write( VoidConstPtr buffer // 書き込むデータ UInt32 size // 書き込むデータのサイズ );
書き込むデータ サイズが SFXStreamWriter::GetWritableSize 関数で得られる値より大きい場合、SFXStreamWriter::Flush 関数を呼び出す必要があります。
|
Copyright (C) 2002 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|