NetWorkKit目次     NetWorkKit索引

BNetBuffer

継承: BArchivable

宣言: be/net/NutBuffer.h

ライブラリ: libnetapi.so

アロケーション: Constructor only

概要

BNetBufferクラスはさまざまな種類のデータが含まれるネットワークバッファを作成する簡単な方法を提供する。 BNetEndpointクラスとともに使用する。

いったん BNetBufferを作成したら、さまざまなデータ型に対して設計された関数のシリーズを使うことによって、データを追加できる。例えば、バッファを作成して、long型の整数2と文字列、"This is a test."を格納するためにはこのようにすればよい。

   BNetBuffer buffer(512);
   buffer.AppendInt32(2);
   buffer.AppendString("This is a test.");

AppendInt32()関数は自動的に値をネットワークバイトオーダーにする。ほかのAppendXXX()関数も同様である(16-ビット 32-ビット 64-ビット signed または unsignedの整数)。同様にRemoveXXX()関数もデータを削除し、エンディアンを考慮する。


コンストラクタデストラクタ


BNetBuffer()

                                                         
  

BNetBuffer(size_t size = 0)

BNetBuffer(const BNetBuffer &from)

BNetBuffer(BMessage *archive)

BNetBufferを作成する。最初の書式は、sizeバイトだけデータが入るバッファを作成する。この場合、バッファは最初、からっぽである。

2番目の書式は、すでにデータを含んでいるかもしれないfrom引数によって示されたBNetBufferと正確に同一なBNetBufferを作成する。


~BNetBuffer

                                                         
  

virtual ~BNetEndpoint()

典型的なデストラクタ


メンバ関数





AppendInt8() , AppendUint8() , AppendInt16() , AppendUint16() , AppendInt32() , AppendUint32() , AppendInt64() , AppendUint64() , AppendFloat() , AppendDouble() , AppendString() , AppendData() , AppendMessage()

                                                         
  

status_t AppendInt8(int8 value)

status_t AppendUint8(uint8 value)

status_t AppendInt16(int16 value)

status_t AppendUint16(uint16 value)

status_t AppendInt32(int32 value)

status_t AppendUint32(uint32 value)

status_t AppendInt64(int64 value)

status_t AppendUint64(uint64 value)

status_t AppendFloat(float value)

status_t AppendDouble(double value)

status_t AppendString(const char *string)

status_t AppendData(const void *data, size_t size)

status_t AppendMessage(BMessage &message)

バッファの最後にデータを追加する。整数の値は自動的にネットワークバイトオーダーに変換される(しかし、浮動小数点とAppendData()によって追加される構造体は違う)

文字列はnullで終わる文字列として追加される。

AppendData()関数はdataからsizeバイトコピーする。

返値

B_OK.データはエラーなしに追加された。

  • B_ERROR.データは追加できなかった。


    Data() , Size() , BytesRemaining()

                                                             
      

    unsigned char *Data(void) const

    size_t Size(void) const

    size_t BytesRemaining(void) const

    Data() はBNetBufferの内部のデータバッファへのポインタを返す。

    Size() はバッファが現在使っているバイト数を返す。

    BytesRemaining() はバッファ内の使用されてないバイト数を返す。






    RemoveInt8() , RemoveUint8() , RemoveInt16() , RemoveUint16() , RemoveInt32() , RemoveUint32() , RemoveInt64() , RemoveUint64() , RemoveFloat() , RemoveDouble() , RemoveString() , RemoveData() , RemoveMessage()

                                                             
      

    status_t RemoveInt8(int8 &value)

    status_t RemoveUint8(uint8 &value)

    status_t RemoveInt16(int16 &value)

    status_t RemoveUint16(uint16 &value)

    status_t RemoveInt32(int32 &value)

    status_t RemoveUint32(uint32 &value)

    status_t RemoveInt64(int64 &value)

    status_t RemoveUint64(uint64 &value)

    status_t RemoveFloat(float &value)

    status_t RemoveDouble(double &value)

    status_t RemoveString(char *string, size_t size)

    status_t RemoveData(void *data, size_t size)

    status_t RemoveMessage(BMessage &message)

    バッファからデータを取り除く。整数の値は、自動的にネットワークバイトオーダーから変換される(しかし浮動小数点と、RemoveData()関数によって取り除かれる構造体は違う)

    文字列はsizeバイトまで、NULLで終わる文字列として取り除かれる。stringのバッファが少なくともsizeバイトあるか確認してください。(訳注:これはRemoveString()の第一引数がsizeバイト以下だとエラーの原因になるということです)

    RemoveData()sizeバイト取り除いて、dataで示されるバッファにコピーする。data バッファが少なくともsizeバイトあることを確認してください。

    これらの関数はバッファの最初から始まります。アイテムが取り除かれたら、次のRemove...()関数の呼び出しはバッファの次のバイトから始まります。

    RETURN CODES

    B_OK. はきちんと取り除かれた。


    Size()はData()

    を参照してください。


    演算子


    = (assignment)

                                                             
      

    BNetBuffer &operator =(const BNetBuffer &from)

    BNetBufferを fromで示されたところから左辺値にコピーする。それによってオブジェクトをコピーする。もしfromが接続されていたら、左辺値も同じように接続される。またなにがあろうとバッファ内のデータもコピーされる。


    Network Kit目次     Network Kit 索引
    訳者 big56