前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0
SFBUnzipAStream
IUnzipAStream インターフェイスのラッパークラスです。
#include <SFBUnzipAStream.h.hpp>
class SFBUnzipAStream : public SFBAStream;
SFMTYPEDEFWRAPPER(SFBUnzipAStream)

継承図

SFBUnzipAStream クラスの継承図

協調図

SFBUnzipAStream クラスの協調図

参照

BREW API IUnzipAStream

メンバ

パブリック関数
static
SFBUnzipAStreamSmp
NewInstance( Void )
SFBUnzipAStream インターフェイスのインスタンスを取得します。
Void SetStream( SFBAStreamSmpConstRef stream )
gzip 形式で圧縮したストリームを設定します。
Void Cancel( Void ) (SFBAStream から継承)
SFBAStream::Readable で登録されたコールバックをキャンセルします。
SInt32 Read( VoidPtr buffer , UInt32 count ) (SFBAStream から継承)
Read( SFXBufferPtr buffer ) (SFBAStream から継承)
ストリームからデータを読み込み、読み込んだバイト数を返します。
Void Readable( PFNNOTIFY notify , VoidPtr data = null ) (SFBAStream から継承)
データが読み込み可能かどうかをチェックするコールバックを登録します。

SFBUnzipAStream::NewInstance
SFBUnzipAStream インターフェイスのインスタンスを取得します。
[ public, static ]
SFBUnzipAStreamSmp NewInstance(Void);

SFBUnzipAStream::SetStream
gzip 形式で圧縮したストリームを設定します。
[ public ]
Void SetStream(
    SFBAStreamSmpConstRef stream   // gzip 形式で圧縮したストリーム
);

使用例

gzip 形式で圧縮したテキスト データを解凍して読み込み、 ログに表示します。

// gzip 形式のファイル名
#define MY_STRINGFILE_NAME  "MyString.txt.gz"

SFBFileMgrSmp           filemgr;
SFBFileSmp              file;
SFBUnzipAStreamSmp      unzip;
FileInfo                info;
ACharPtr                buffer;

// SFBFileMgr インスタンスを作成します。
filemgr = SFBFileMgr::NewInstance();

// ファイル サイズを取得します。
filemgr->GetInfo(MY_STRINGFILE_NAME, &info);

// ファイルをオープンします。
file = filemgr->OpenFile(MY_STRINGFILE_NAME, _OFM_READ);

// SFBUnzipStream インスタンスを作成します。
unzip = SFBUnzipAStream::NewInstance();

// gzip 形式で圧縮したストリームを設定します。
unzip->SetStream(file);

// データ格納領域を作成します。
buffer = (ACharPtr)MALLOC(info.dwSize);

// gzip 形式で圧縮したテキストデータを解凍します。
unzip->Read(buffer, info.dwSize);

// ログにテキストを表示します。
DBGPRINTF("*** text: %s ***", buffer);

// データ格納領域を解放します。
FREE(buffer);

参照

BREW API IUNZIPASTREAM_SetStream