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

継承図

SFBPeek クラスの継承図

協調図

SFBPeek クラスの協調図

参照

BREW API IPeek

バグ情報

IPEEK_Peek
ドキュメント エラー BREW API リファレンス 2.0.1.5

リファレンスには IPEEK_Peek が IPEEK_END を返すとありますが、 現在この API はストリームの終端に達しても IPEEK_UNK を返します。 ストリームの終端に達した状態で IPEEK_Advance をコールした場合には IPEEK_END が返ります。

IPEEK_Readable
ドキュメント エラー BREW API リファレンス 2.0.1.5

IPEEK_Readable の API リファレンスにおけるプロトタイプに誤りがあります。 正しくは、下記の通りです。

void IPEEK_Readable(IPeek * pIPeek, AEECallback *pcb)

補記:BREW API リファレンス 2.1(英語版) にて修正されました。日本語版は未修正です。

メンバ

パブリック関数
Void Advance( SInt32 advance )
バッファ内のピークポインタを前進または後進させます。
VoidPtr Peek( SInt32 wanted , SInt32Ptr available , SInt32Ptr code )
バッファに格納されたデータへのポインタを返し、 オプションとして、バッファ内のデータをさらに読み取ることを試みます。
Void Peekable( AEECallback* callback )
バッファに格納されていないデータがまだある場合に、 コールバック関数をコールします。
static
Bool
Exhausted( SInt32 code ) (SFBSource から継承)
SFBSource、SFBPeek、または SFBGetLine がデータを処理し尽くしたかどうかをチェックします。
SFCError QueryInterface( AEECLSID clsid , VoidHandle handle ) (SFBQuery から継承)
QueryInterface( AEECLSID clsid , SFBBaseSmpPtr handle ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
SFBBaseSmp QueryInterface( AEECLSID clsid ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
SInt32 Read( VoidPtr buf , SInt32 size ) (SFBSource から継承)
Read( SFXBufferPtr buf ) (SFBSource から継承)
指定されたバッファにソースストリームからのバイトをコピーします。
Void Readable( AEECallback* callback ) (SFBSource から継承)
SFBSource::Read() が ISOURCE_WAIT 以外のものを返した場合にコールされるコールバックを スケジュールまたはキャンセルします。
Void Self( AEECLSID clsidReq , SFBQuerySmpPtr clone , AEECLSID clsidImp ) (SFBQuery から継承)
オブジェクトを単一インタフェースで実装する際に使用します。
SFBQuerySmp Self( AEECLSID clsidReq , AEECLSID clsidImp ) (SFBQuery から継承)
オブジェクトを単一インタフェースで実装する際に使用します。

SFBPeek::Advance
バッファ内のピークポインタを前進または後進させます。
[ public ]
Void Advance(
    SInt32 advance   // 前進するバイト数(負の場合は、後進するバイト数)。
);

参照

BREW API IPEEK_Advance


SFBPeek::Peek
バッファに格納されたデータへのポインタを返し、 オプションとして、バッファ内のデータをさらに読み取ることを試みます。
[ public ]
VoidPtr Peek(
    SInt32 wanted         
// 指定されたバイト数。この数だけのバイトがバッファ内にすでに使用可能な場合、
// Peek()はそれ以上処理を行わない。そうでない場合、
// この関数はネットワーク(またはほかの任意データソース)から
// さらにデータをコピーすることを試みる。
// 現在のバッファ状態をすばやく問い合わせるには、0(ゼロ)を渡す。
// IPEEK_PEEKMAX の定義は「可能な限りのデータを返すこと」。
        
    SInt32Ptr available   // バッファ内のデータのサイズ。
    SInt32Ptr code        
// 返されたデータのほかに使用可能なデータがあるかどうかを次のように示す。
// IPEEK_END これ以上データがない(ストリーム内で END に遭遇)。
// IPEEK_ERROR これ以上データがない(ストリーム内で ERROR に遭遇)。
// IPEEK_FULL データがバッファサイズにより制限された。
//            新しいデータを取得するため、バッファに格納されたデータを超えて前進する必要がある。
// IPEEK_WAIT 再コールする前に SFBPeek::Peekable() の結果を待つこと。
//            データソースがポーリングされたが、今は使用可能なデータがない。
// IPEEK_UNK 要求されたデータの量がバッファ内のデータの量よりも少なかった。
//           wantedの値をより大きくして再コールすること。データソースはポーリングされなかった。
        
);

参照

BREW API IPEEK_Peek


SFBPeek::Peekable
バッファに格納されていないデータがまだある場合に、 コールバック関数をコールします。
[ public ]
Void Peekable(
    AEECallback* callback   // ISource 読み取り可能な場合のコールバックへのポインタ。
);

参照

BREW API IPEEK_Peekable