![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |


制限事項
書き込み用ストリームは取得できません。読み込み位置の移動もサポートしません。
■ SFXSource クラスの使用手順
例 772. ISource インターフェースからデータを読み込む方法
Void MyClass::UseSFXSource(Void)
{
SFXSource source;
static ACharConst data[] = "test data"; // SFBSource ストレージから読み込むデータ
SFXAnsiString string; // SFBSource ストレージから読み込む変数
SFXBinaryStreamReader reader; // 読み込み用ストリーム
SFBSourceUtilSmp util;
SFBSourceSmp bs;
// メモリブロックから SFBSource を作成する
util = SFBSourceUtil::NewInstance();
util->SourceFromMemory(data, sizeof(data), null, null, &bs);
// SFBSource ストレージをオープンする
if (source.Open(bs) == SFERR_NO_ERROR) {
// 読み込み用ストリームを取得する
if (source.GetStreamReader(1024, &reader) == SFERR_NO_ERROR) {
reader.Fetch(); // SFBSource ストレージから読み込みストリームにデータを読み込む
reader >> string; // 読み込みストリームから string にデータを読み込む
// SFBSource ストレージから読み込んだ内容を表示する
TRACE("size = %d", string.GetLength()); // 文字列の長さを表示する: "size = 9"
TRACE("read = %s", string.GetCString()); // 文字列を表示する: "read = test data"
reader.Release(); // 読み込みストリームを解放する
}
source.Close(); // SFBSource ストレージをクローズする
}
return;
}
| コンストラクタ/デストラクタ |
|---|
|
SFXSource( Void ) SFXSource クラスのコンストラクタです。
|
|
~SFXSource( Void ) SFXSource クラスのデストラクタです。
|
| パブリック関数 | |
|---|---|
| SFCError |
AsSFBAStream(
SFBAStreamSmpPtr result
) 内部で管理されている SFBSource クラスのインスタンスを SFBAStream クラスのインスタンスに変換します。
|
| SFCError |
AsSFBSource(
SFBSourceSmpPtr result
) 内部で管理されている SFBSource クラスのインスタンスを読み書き属性をつけて取得します。
|
| Void |
Cancel( Void ) コールバックをキャンセルします。
|
| Void |
Close( Void ) 内部で使っているソースを閉じます。
|
| SFBSourceSmpConstRef |
GetSFBSource( Void ) 内部で使っている SFBSource クラスのインスタンスを取得します。
|
| SFCError |
GetStreamReader(
UInt32 size
, SFXStreamReaderPtr result
) GetStreamReader( SFXStreamReaderPtr result ) 読み込み用ストリームを取得します。
|
| SFCError |
GetStreamWriter(
UInt32 size
, SFXStreamWriterPtr result
) GetStreamWriter( SFXStreamWriterPtr result ) 【 現在、この関数は使えません。 】
|
| SFCError |
Open(
SFXMemoryConstRef memory
) Open( SFBAStreamSmpConstRef stream ) Open( SFBSourceSmpConstRef source ) Open( SFXTCPSocketConstRef socket ) Open( SFXFileConstRef file ) Open( SFXZIPDecoderConstRef zip ) ソースを登録します。
|
| SFCError |
Read(
VoidPtr buffer
, UInt32Ptr size
) 読み込み用ストリームを使わずにソースからデータを読み込みます。
|
| SFCError |
ScheduleRead(
CallbackSPP spp
, VoidPtr reference
) 読み込み用ストリームを使わないソースからのデータ読み込みをスケジュールします。
|
| SFCError |
ScheduleWrite(
CallbackSPP spp
, VoidPtr reference
) 【 現在、この関数は使えません。 】
|
| SFCError |
Write(
VoidConstPtr buffer
, UInt32Ptr size
) 【 現在、この関数は使えません。 】
|
| 型 |
|---|
|
CallbackSPP
(SFXStorage から継承)
コールバック関数を表す型です。
|
[ public, explicit ] SFXSource(Void);
リソースは確保されません。
[ public, virtual ] virtual ~SFXSource(Void);
[ public, virtual, const ] SFCError AsSFBAStream( SFBAStreamSmpPtr result // 結果の SFBAStream クラスのインスタンスへのポインタ );
変換後の SFBAStream クラスのインスタンスへのポインタを指定します。
データソースの内容を非同期ストリームとして扱います。
[ public, virtual, const ] SFCError AsSFBSource( SFBSourceSmpPtr result // 結果の SFBSource クラスのインスタンスへのポインタ );
SFBSource クラスのインスタンスへのポインタを指定します。
内部で管理しているデータソースの内容を読み書き属性をつけて取得します。
[ public, virtual ] Void Cancel(Void);
内部で使っている SFBSource クラスのインスタンスに登録されているコールバックをキャンセルします。
[ public ] Void Close(Void);
登録していたコールバックもキャンセルします。
[ public, const ] SFBSourceSmpConstRef GetSFBSource(Void);
[ public, virtual ] SFCError GetStreamReader( UInt32 size // バッファサイズ SFXStreamReaderPtr result // 読み込み用ストリームへのポインタ );
[ public, virtual ] SFCError GetStreamReader( SFXStreamReaderPtr result // 読み込み用ストリームへのポインタ );
読み込み用ストリームのバッファ サイズを指定することも可能です。 読み込み用ストリームは、読み込むデータの種類に応じて SFXBinaryStreamReader、SFXAnsiStringStreamReader、または SFXWideStringStreamReader クラスを使い分けます。
SFXSource::GetStreamWriter | SFXBinaryStreamReader | SFXAnsiStringStreamReader | SFXWideStringStreamReader
[ public, virtual ] SFCError GetStreamWriter( UInt32 size // サイズ SFXStreamWriterPtr result // 書き込み用ストリームへのポインタ );
[ public, virtual ] SFCError GetStreamWriter( SFXStreamWriterPtr result // 書き込み用ストリームへのポインタ );
SFERR_UNSUPPORTED を返します。
[ public ] SFCError Open( SFXMemoryConstRef memory );
[ public ] SFCError Open( SFXZIPDecoderConstRef zip );
[ public ] SFCError Open( SFXFileConstRef file );
[ public ] SFCError Open( SFXTCPSocketConstRef socket );
[ public ] SFCError Open( SFBSourceSmpConstRef source );
[ public ] SFCError Open( SFBAStreamSmpConstRef stream );
[ public, virtual ] SFCError Read( VoidPtr buffer // 読み込んだデータを格納するバッファ UInt32Ptr size // バッファのサイズ、読み込んだデータのサイズ );
読み込んだデータを格納するバッファを指定します。
SFXSource::Read 関数の呼び出し時には、バッファ サイズを指定します。 SFXSource::Read 関数が終了すると、読み込んだデータのサイズが格納されます。
SFXSource::Read 関数を使うには、SFXSource::Open 関数を呼び出してソースを登録する必要があります。
[ public, virtual ] SFCError ScheduleRead( CallbackSPP spp // コールバック関数 VoidPtr reference // コールバック関数に渡すデータ );
SFXSource::ScheduleRead 関数は、SFXSource::Read 関数を使ってデータ受信するコールバック関数を登録するために使います。
※ SFXSource::Read 関数の戻り値が AEE_STREAM_WOULDBLOCK である場合、SFXSource::ScheduleRead 関数でコールバック関数を登録して、再びデータ受信を試みます。
[ public, virtual ] SFCError ScheduleWrite( CallbackSPP spp // コールバック関数 VoidPtr reference // コールバックに渡すデータ );
SFERR_UNSUPPORTED を返します。
[ public, virtual ] SFCError Write( VoidConstPtr buffer // 書き込むデータ UInt32Ptr size // 書き込むデータのサイズ );
SFERR_UNSUPPORTED を返します。
|
Copyright (C) 2002 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|