![]() ![]() ![]()
|
SophiaFramework 2.2 |
#include <SFUMemoryStream.hpp>
class SFUMemoryStream : public SFUStream;
typedef SFUMemoryStream& SFUMemoryStreamRef; typedef SFUMemoryStream* SFUMemoryStreamPtr; typedef SFUMemoryStream** SFUMemoryStreamHandle; typedef const SFUMemoryStream ConstSFUMemoryStream; typedef const SFUMemoryStream& ConstSFUMemoryStreamRef; typedef const SFUMemoryStream* ConstSFUMemoryStreamPtr; typedef const SFUMemoryStream** ConstSFUMemoryStreamHandle;
SFUMemoryStream は、メモリストリームを表すクラスです。 メモリに対して読み込みや書き込みを行います。 メモリへの書き込みにともなう自動拡張も行います。
| コンストラクタ/デストラクタ | ||
|---|---|---|
| public |
SFUMemoryStream | SFUMemoryStream クラスのコンストラクタです。 |
| public |
~SFUMemoryStream | SFUMemoryStream クラスのデストラクタです。 |
| パブリック関数 | ||
|---|---|---|
| public |
Available | 読み取り可能なデータサイズを取得します。 |
| public |
Close | メモリストリームをクローズします。 |
| public |
Exception (SFAException から継承) | エラーコードを取得/設定します。 |
| public |
Get | ストリームからデータを読み込みます。 |
| public |
GetBuffer | 内部で確保されているメモリバッファのポインタを取得します。 |
| public |
GetBufferSize | 内部で確保されているメモリバッファのサイズを取得します。 |
| public |
GetSize | メモリストリームの有効サイズを取得します。 |
| public |
IsEOS | 読み取りポインタがストリーム終端に達したかどうかを返します。 |
| public |
Open | メモリバッファを確保してメモリストリームをオープンします。 |
| public |
Put | ストリームにデータを書き込みます。 |
| public |
Seek | 読み込み/書き込みポインタを指定された位置にシークします。 |
| public |
Tell | 現在のストリーム位置を返します。 |
| public |
operator<< (SFUStream から継承) | ストリームのインサータ (書き込み演算子) です。 |
| public |
operator>> (SFUStream から継承) | ストリームのエクストラクタ (読み取り演算子) です。 |
| プロテクト関数 | ||
|---|---|---|
| public |
Exception (SFAException から継承) | エラーコードを取得/設定します。 |
| protected |
endianbig (SFUStream から継承) | 読み込みモード/書き込みモードのエンディアンをビッグエンディアンに設定します。 |
| protected |
endianlittle (SFUStream から継承) | 読み込みモード/書き込みモードのエンディアンをリトルエンディアンに設定します。 |
| protected |
multi (SFUStream から継承) | 任意のサイズのデータを読み書きします。 |
| protected |
offset (SFUStream から継承) | ストリームの読み込み/書き込みポインタを指定された位置に移動します。 |
| protected |
seek (SFUStream から継承) | ストリームの読み込み/書き込みポインタを指定された位置に移動します。 |
| 型 | ||
|---|---|---|
| EndianEnum (SFUStream から継承) | ストリームのエンディアン変換を表す定数です。 | |
| NO_ERROR (SFAException から継承) | エラーがないことを表す定数です。 | |
| SeekEnum (SFUStream から継承) | ストリームのシークモードを表す定数です。 | |
[ public ] SFUMemoryStream(Void);
データメンバを初期化します。 メモリバッファは確保しません。 エラー値に SFERR_NO_ERROR が設定されます。
[ public, virtual ] ~SFUMemoryStream(Void);
メモリストリームがオープンされている場合は自動的にクローズします。
[ public, virtual ] UInt32 Available(Void);
現在の読み取り位置から読み取り可能なデータサイズを返します。 ストリームがオープンされていない場合は、0 を返します。 エラー値は設定されません。
メモリストリームをクローズします。
detach 引数が FALSE の場合、 メモリバッファを保持していればそれを解放し、 NULL を返します。
detach 引数が TRUE の場合、 メモリバッファを呼び出し側に返します。 この場合、メモリバッファは解放されませんので、 開発者が FREE() を使用してバッファを解放してください。
失敗した場合は 0 を返します。 成功した場合は、実際に読み込まれたバイト数 (size) を返します。
ストリームからデータを読み込みます。
エラーが発生した場合は、読み込みポインタが変化することはありません。
[ public, const ] VoidPtr GetBuffer(Void);
[ public, const ] UInt32 GetBufferSize(Void);
[ public, const ] UInt32 GetSize(Void);
メモリストリームの有効サイズを取得します。 メモリストリームは効率化のためにメモリバッファを余分に確保するため、 この値は、GetBufferSize で取得されるサイズと等しいとは限らず、 一般にそれ以下のサイズになります。
[ public, virtual ] Bool IsEOS(Void);
読み取りポインタがストリーム終端に達したかどうかを返します。 ストリームがオープンされていない場合は TRUE を返します。
[ public ] SFCError Open( UInt32 initSize // メモリバッファの初期サイズ Bool canExtend = TRUE // メモリバッファを自動拡張するか );
[ public ] SFCError Open( VoidPtr buffer // アタッチするメモリポインタ UInt32 size // アタッチするメモリサイズ Bool canExtend = TRUE // メモリバッファを自動拡張するか );
メモリバッファの初期サイズを指定します。
メモリバッファを自動拡張するかどうかを指定します。 canExtend が TRUE に設定された場合、メモリバッファは書き込みに応じて自動的に拡張されます。
設定されたエラー値を返します。 エラーは戻り値で取得できますが、Exception() メンバ関数でも取得できます。
初期サイズを指定してオープンした場合、 ストリームの有効範囲は 0 になります。
既存のメモリポインタをアタッチした場合、 ストリームの有効範囲は指定されたメモリサイズになります。
[ public, virtual ] UInt32 Put( ConstVoidPtr ptr // 書き込みデータのポインタ UInt32 size // 書き込むデータのサイズ );
書き込まれたサイズを返します。 失敗すると 0 を返します。 成功すると size 引数の値を返します。
[ public, virtual ] UInt32 Seek( SInt32 offset // 基準位置からのオフセット SeekEnum dir // 基準位置 ModeEnum mode // 読み込みポインタ/書き込みポインタの指定 );
成功すると新しい位置を返します。 失敗すると UInt32(-1) を返します。
読み込み/書き込みポインタを指定された位置にシークします。
[ public, virtual ] UInt32 Tell( ModeEnum mode // 読み込み/書き込みモードの指定 );
成功すると現在のストリーム位置を返します。 失敗すると UInt32(-1) を返します。
| Copyright(C) 2003-2004 Sophia Cradle Inc., All Rights Reserved. |
![]() ![]() ![]()
|