前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFBUnzipAStream
IUnzipAStream インターフェースのラッパークラスです。
#include <SFBUnzipAStream.h.hpp>
class SFBUnzipAStream : public SFBAStream;
SFMTYPEDEFWRAPPER(SFBUnzipAStream)

継承図

SFBUnzipAStream クラスの継承図

バージョン

BREW 2.0 BREW 2.1 BREW 3.1 BREW 4.0

参照

BREW API IUnzipAStream

メンバ

パブリック関数
static
SFBUnzipAStreamSmp
NewInstance( SFCErrorPtr exception = null )
SFBUnzipAStream インスタンスを生成します。
static
SFBUnzipAStreamSmp
NewInstance( AEECLSID id , SFCErrorPtr exception = null )
SFBUnzipAStream インスタンスを生成します。
Void SetStream( SFBAStreamSmpConstRef stream )
gzip 形式で圧縮されたストリームを設定します。
SFCError SetStream( SFXStorageConstRef storage )
gzip 形式で圧縮されたストリームを設定します。
Void Cancel( Void ) (SFBAStream から継承)
SFBAStream::Readable で登録されたコールバックをキャンセルします。
SInt32 Read( VoidPtr buffer , UInt32 count ) (SFBAStream から継承)
ストリームからデータを読み込み、読み込んだバイト数を取得します。
SInt32 Read( SFXBufferPtr buffer ) (SFBAStream から継承)
ストリームからデータを読み込み、読み込んだバイト数を取得します。
Void Readable( PFNNOTIFY notify , VoidPtr data = null ) (SFBAStream から継承)
データが読み込み可能かどうかを判定するコールバックを登録します。
プロテクト関数
static
SFBBaseSmp
FactoryByCreate( AEECLSID id , SFCErrorPtr exception = null ) (SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを生成します。
static
SFBBaseSmp
FactoryByQuery( SFBQuerySmpConstRef query , AEECLSID id , SFCErrorPtr exception = null ) (SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを指定した SFBQuery インスタンスを使用して生成します。

SFBUnzipAStream::NewInstance
SFBUnzipAStream インスタンスを生成します。
[ public, static ]
SFBUnzipAStreamSmp NewInstance(
    SFCErrorPtr exception = null   // エラー値
);
[ public, static ]
SFBUnzipAStreamSmp NewInstance(
    AEECLSID id                    // クラスID
    SFCErrorPtr exception = null   // エラー値
);

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

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • storage が閉じているとき: SFERR_INVALID_STATE
  • 引数が null のとき: SFERR_INVALID_PARAM

使用例

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);

// ログにテキストを表示する
TRACE("*** text: %s ***", buffer);

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

参照

BREW API IUNZIPASTREAM_SetStream