SophiaFramework UNIVERSE 5.3 |
SFXStorage は、ストレージクラスの基底クラスです。
ストレージクラスとは、 ストリームを使用してファイルやネットワーク、 メモリなどへデータを入出力するクラスのことです。 SophiaFramework UNIVERSE には、以下の 6 種類のストレージクラスが用意されています。
表 222. ストレージ
クラス名 | 解説 |
---|---|
SFXFile | ファイルを操作のためのクラスです。 |
SFXHTTPConnection | HTTP 通信のためのクラスです。 |
SFXTCPSocket | TCP ソケット通信のためのクラスです。 |
SFXSSLSocket | SSL ソケット通信のためのクラスです。 |
SFXMemory | メモリストリーム ( バッファストリーム ) のためのストレージクラスです。 |
SFXSource | BREW インターフェースの ISource からデータを読み込むストリームのためのストレージクラスです。 |
SFXZIPDecoder | gzip を利用した Deflate 圧縮を解凍するためのストレージクラスです。 |
注意 | |
---|---|
ストレージクラスは、すべて SFXStorage クラスを継承します。 |
ストレージの種類によって以下のような違いはありますが、 ストリームによる入出力方法は概ね共通なので、 ストレージに依存しない汎用的なプログラミングを実現できます。
表 223. ストレージクラスに関する、コールバック関数有り無しとその読み込みと書き込み機能
コールバック関数なし読み込み | コールバック関数あり読み込み | コールバック関数なし書き込み | コールバック関数あり書き込み | |
---|---|---|---|---|
SFXFile | ○ | ○ | ○ | × |
SFXHTTPConnection | × | ○ | × | ○ |
SFXTCPSocket | × | ○ | × | ○ |
SFXSSLSocket | × | ○ | × | ○ |
SFXMemory | ○ | × | ○ | × |
SFXSource | △ (BREW ISource に依存) | ○ | × | × |
SFXZIPDecoder | △ (登録したストレージに依存) | ○ | × | × |
注意 | |
---|---|
SFXSource クラスや SFXZIPDecoder クラスでは、 ソースや登録したストレージの種類によっては、コールバック関数を使用してデータを読み込む必要があります。 例えば、 SFXTCPSocket ストレージでは、データ受信にコールバック関数の使用が必須です。 そのため、 SFXTCPSocket ストレージからの GZIP データを SFXZIPDecoder に登録して読み込んで解凍するには、 コールパック関数を利用する必要があります。 |
ストレージ | SFXFile | SFXTCPSocket | SFXSSLSocket | SFXMemory | SFXSource | SFXZIPDecoder
コンストラクタ/デストラクタ |
---|
SFXStorage( Void ) SFXStorage クラスのコンストラクタです。
|
~SFXStorage( Void ) SFXStorage クラスのデストラクタです。
|
パブリック関数 | |
---|---|
SFCError |
AsSFBAStream(
SFBAStreamSmpPtr result
) SFBAStream インスタンスに変換します。
|
SFCError |
AsSFBSource(
SFBSourceSmpPtr result
) SFBSource インスタンスに変換します。
|
Void |
Cancel( Void ) データの読み書きをキャンセルします。
|
SFCError |
GetStreamReader(
UInt32 size
, SFXStreamReaderPtr result
) 読み込み用ストリームを取得します。
|
SFCError |
GetStreamReader(
SFXStreamReaderPtr result
) 読み込み用ストリームを取得します。
|
SFCError |
GetStreamWriter(
UInt32 size
, SFXStreamWriterPtr result
) 書き込み用ストリームを取得します。
|
SFCError |
GetStreamWriter(
SFXStreamWriterPtr result
) 書き込み用ストリームを取得します。
|
SFCError |
Read(
VoidPtr buffer
, UInt32Ptr size
) 読み込み用ストリームを使わずにストレージからデータを読み込みます。
|
SFCError |
ScheduleRead(
CallbackSPP spp
, VoidPtr reference
) Read をスケジュールします
|
SFCError |
ScheduleWrite(
CallbackSPP spp
, VoidPtr reference
) 書き込み用ストリームを使わないストレージへのデータ書き込みをスケジュールします。
|
SFCError |
Write(
VoidConstPtr buffer
, UInt32Ptr size
) 書き込み用ストリームを使わずにストレージにデータを書き込みます。
|
型 |
---|
CallbackSPP ストレージクラスで使用するコールバック関数の型です。
|
[ protected, explicit ] SFXStorage(Void);
[ public, pure-virtual ] virtual ~SFXStorage(Void);
この関数は純粋仮想関数です。
[ public, pure-virtual, const ] SFCError AsSFBAStream( SFBAStreamSmpPtr result // SFBAStream インスタンスへのポインタ );
SFBAStream インスタンスへのポインタを指定します。
この関数は純粋仮想関数です。
[ public, pure-virtual, const ] SFCError AsSFBSource( SFBSourceSmpPtr result // SFBSource インスタンスへのポインタ );
SFBSource インスタンスへのポインタを指定します。
この関数は純粋仮想関数です。
[ public, pure-virtual ] Void Cancel(Void);
この関数は純粋仮想関数です。
[ public, pure-virtual ] SFCError GetStreamReader( UInt32 size // バッファサイズ SFXStreamReaderPtr result // 読み込み用ストリームへのポインタ );
[ public, pure-virtual ] SFCError GetStreamReader( SFXStreamReaderPtr result // 読み込み用ストリームへのポインタ );
この関数は純粋仮想関数です。
[ public, pure-virtual ] SFCError GetStreamWriter( UInt32 size // サイズ SFXStreamWriterPtr result // 書き込み用ストリームへのポインタ );
[ public, pure-virtual ] SFCError GetStreamWriter( SFXStreamWriterPtr result // 書き込み用ストリームへのポインタ );
この関数は純粋仮想関数です。
[ public, pure-virtual ] SFCError Read( VoidPtr buffer // 読み込むバッファ UInt32Ptr size // バッファのサイズ、読み込んだデータのサイズ );
読み込むバッファ
SFXStorage::Read 関数の呼び出し時は、バッファのサイズを指定します。 SFXStorage::Read 関数が終了すると、読み込んだデータのサイズが格納されます。
この関数は純粋仮想関数です。
[ public, pure-virtual ] SFCError ScheduleRead( CallbackSPP spp // コールバック関数 VoidPtr reference // コールバック関数に渡すデータ(参照値) );
この関数は、Read をスケジュールします()。
この関数は純粋仮想関数です。
[ public, pure-virtual ] SFCError ScheduleWrite( CallbackSPP spp // コールバック関数 VoidPtr reference // コールバック関数に渡すデータ(参照値) );
この関数は純粋仮想関数です。
[ public, pure-virtual ] SFCError Write( VoidConstPtr buffer // 書き込むバッファ UInt32Ptr size // 書き込むデータのサイズ、書き込んだデータのサイズ );
書き込むデータを指定します。
SFXStorage::Write 関数の呼び出し時は、書き込むデータのサイズを指定します。 SFXStorage::Write 関数が終了すると、実際に書き込んだデータのサイズが格納されます。
この関数は純粋仮想関数です。
typedef Void(* SFXStorage::CallbackSPP)(SFCError error, VoidPtr reference)
ストレージクラスで使用するコールバック関数の型です。
SFXStorage / SFXTCPSocket / SFXSSLSocket / SFXUDPSocket / SFXMemory / SFXSource / SFXZIPDecoder クラスで使用するコールバック関数の型です。
第 1 引数にエラーコード、 第 2 引数はストレージクラスでコールバック登録したときの参照値(コールバック関数に渡すデータ。 通常、ストレージクラスのインスタンス )が渡されます。
SFXStorage | SFXTCPSocket | SFXSSLSocket | SFXUDPSocket | SFXMemory | SFXSource | SFXZIPDecoder
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |