前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXStorage
ストレージの基底クラスです。
#include <SFXStorage.h.hpp>
class SFXStorage;
SFMTYPEDEFCLASS(SFXStorage)

継承図

SFXStorage クラスの継承図

解説

SFXStorage は、ストレージクラスの基底クラスです。

ストレージクラスとは、 ストリームを使用してファイルやネットワーク、 メモリなどへデータを入出力するクラスのことです。 SophiaFramework UNIVERSE には、以下の 6 種類のストレージクラスが用意されています。

表 222. ストレージ

クラス名 解説
SFXFile ファイルを操作のためのクラスです。
SFXHTTPConnection HTTP 通信のためのクラスです。
SFXTCPSocket TCP ソケット通信のためのクラスです。
SFXSSLSocket SSL ソケット通信のためのクラスです。
SFXMemory メモリストリーム ( バッファストリーム ) のためのストレージクラスです。
SFXSource BREW インターフェースの ISource からデータを読み込むストリームのためのストレージクラスです。
SFXZIPDecoder gzip を利用した Deflate 圧縮を解凍するためのストレージクラスです。
[Note] 注意

ストレージクラスは、すべて SFXStorage クラスを継承します。

ストレージの種類によって以下のような違いはありますが、 ストリームによる入出力方法は概ね共通なので、 ストレージに依存しない汎用的なプログラミングを実現できます。

  • 初期処理と終了処理が異なる。
  • 読み込みしかサポートしない。
  • コールバック関数を伴う読み書きしかサポートしない。
  • コールバック関数を伴わない読み書きしかサポートしない。

表 223. ストレージクラスに関する、コールバック関数有り無しとその読み込みと書き込み機能

コールバック関数なし読み込み コールバック関数あり読み込み コールバック関数なし書き込み コールバック関数あり書き込み
SFXFile ×
SFXHTTPConnection × ×
SFXTCPSocket × ×
SFXSSLSocket × ×
SFXMemory × ×
SFXSource △ (BREW ISource に依存) × ×
SFXZIPDecoder △ (登録したストレージに依存) × ×
[Note] 注意

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
ストレージクラスで使用するコールバック関数の型です。

SFXStorage::SFXStorage
SFXStorage クラスのコンストラクタです。
[ protected, explicit ]
SFXStorage(Void);

SFXStorage::~SFXStorage
SFXStorage クラスのデストラクタです。
[ public, pure-virtual ]
virtual ~SFXStorage(Void);

解説

この関数は純粋仮想関数です。


SFXStorage::AsSFBAStream
SFBAStream インスタンスに変換します。
[ public, pure-virtual, const ]
SFCError AsSFBAStream(
    SFBAStreamSmpPtr result   // SFBAStream インスタンスへのポインタ
);

引数

result

SFBAStream インスタンスへのポインタを指定します。

解説

この関数は純粋仮想関数です。

参照

SFBAStream


SFXStorage::AsSFBSource
SFBSource インスタンスに変換します。
[ public, pure-virtual, const ]
SFCError AsSFBSource(
    SFBSourceSmpPtr result   // SFBSource インスタンスへのポインタ
);

引数

result

SFBSource インスタンスへのポインタを指定します。

解説

この関数は純粋仮想関数です。

参照

SFBSource


SFXStorage::Cancel
データの読み書きをキャンセルします。
[ public, pure-virtual ]
Void Cancel(Void);

解説

この関数は純粋仮想関数です。


SFXStorage::GetStreamReader
読み込み用ストリームを取得します。
[ public, pure-virtual ]
SFCError GetStreamReader(
    UInt32 size                 // バッファサイズ
    SFXStreamReaderPtr result   // 読み込み用ストリームへのポインタ
);
[ public, pure-virtual ]
SFCError GetStreamReader(
    SFXStreamReaderPtr result   // 読み込み用ストリームへのポインタ
);

解説

この関数は純粋仮想関数です。


SFXStorage::GetStreamWriter
書き込み用ストリームを取得します。
[ public, pure-virtual ]
SFCError GetStreamWriter(
    UInt32 size                 // サイズ
    SFXStreamWriterPtr result   // 書き込み用ストリームへのポインタ
);
[ public, pure-virtual ]
SFCError GetStreamWriter(
    SFXStreamWriterPtr result   // 書き込み用ストリームへのポインタ
);

解説

この関数は純粋仮想関数です。


SFXStorage::Read
読み込み用ストリームを使わずにストレージからデータを読み込みます。
[ public, pure-virtual ]
SFCError Read(
    VoidPtr buffer   // 読み込むバッファ
    UInt32Ptr size   // バッファのサイズ、読み込んだデータのサイズ
);

引数

buffer

読み込むバッファ

size

SFXStorage::Read 関数の呼び出し時は、バッファのサイズを指定します。 SFXStorage::Read 関数が終了すると、読み込んだデータのサイズが格納されます。

解説

この関数は純粋仮想関数です。


SFXStorage::ScheduleRead
Read をスケジュールします
[ public, pure-virtual ]
SFCError ScheduleRead(
    CallbackSPP spp     // コールバック関数
    VoidPtr reference   // コールバック関数に渡すデータ(参照値)
);

解説

この関数は、Read をスケジュールします()。

この関数は純粋仮想関数です。


SFXStorage::ScheduleWrite
書き込み用ストリームを使わないストレージへのデータ書き込みをスケジュールします。
[ public, pure-virtual ]
SFCError ScheduleWrite(
    CallbackSPP spp     // コールバック関数
    VoidPtr reference   // コールバック関数に渡すデータ(参照値)
);

解説

この関数は純粋仮想関数です。


SFXStorage::Write
書き込み用ストリームを使わずにストレージにデータを書き込みます。
[ public, pure-virtual ]
SFCError Write(
    VoidConstPtr buffer   // 書き込むバッファ
    UInt32Ptr size        // 書き込むデータのサイズ、書き込んだデータのサイズ
);

引数

buffer

書き込むデータを指定します。

size

SFXStorage::Write 関数の呼び出し時は、書き込むデータのサイズを指定します。 SFXStorage::Write 関数が終了すると、実際に書き込んだデータのサイズが格納されます。

解説

この関数は純粋仮想関数です。


SFXStorage::CallbackSPP
ストレージクラスで使用するコールバック関数の型です。
typedef Void(* SFXStorage::CallbackSPP)(SFCError error, VoidPtr reference)

解説

ストレージクラスで使用するコールバック関数の型です。

SFXStorage / SFXTCPSocket / SFXSSLSocket / SFXUDPSocket / SFXMemory / SFXSource / SFXZIPDecoder クラスで使用するコールバック関数の型です。

第 1 引数にエラーコード、 第 2 引数はストレージクラスでコールバック登録したときの参照値(コールバック関数に渡すデータ。 通常、ストレージクラスのインスタンス )が渡されます。

参照

SFXStorage | SFXTCPSocket | SFXSSLSocket | SFXUDPSocket | SFXMemory | SFXSource | SFXZIPDecoder