Table des matières du Kit Réseau   Index du Kit Réseau

BNetBuffer

Hérite de : BArchivable

Déclarée dans : be/net/NutBuffer.h

Bibliothèque :  libnetapi.so

Allocation: Constructeur uniquement

Résumé
La classe  BNetBuffer permet de facilement construire des tampons/buffers réseau composé de n'importe quel type de données, pour utilisation avec la classe BNetEndpoint.

Après création d'un BNetBuffer, vous pouvez y ajouter des données en utilisant une série de fonctions conçues pour ajouter différents types de données. Par exemple, pour créer un buffer et y placer l'entier long 2 suivi de la chaîne "Ceci est un test.", vous pourrier faire cecei :

   BNetBuffer buffer(512);
   buffer.AppendInt32(2);
   buffer.AppendString("Ceci est un test.");
La fonction  AppendInt32() gère automatiquement la conversion de la valeur en ordre d'octet réseau (network byte order), à l'instar de toutes les fonctions AppendXXX() pour les valeurs entières (16/32/64 bits, signée ou non signée). De façon analogue, les fonctions  RemoveXXX() extraient les données d'un buffer et effectuent les manipulations sur l'ordre des octets.


Constructeur et Destructeur


BNetBuffer()

   
 
BNetBuffer(size_t size = 0
BNetBuffer(const BNetBuffer &from
BNetBuffer(BMessage *archive

Créé un BNetBuffer. La première forme créée un nouveau buffer capable de stocker jusqu'à size octets de données. Le buffer ainsi instancié est initialement vide..

La deuxième forme créé un nouveau buffer qui est une copie conforme de l'instance BNetBuffer spécifiée par l'argument from, incluant toute donnée déjà présente dans le buffer. La troisième forme permet de reconstruire un BNetBuffer archivé.


~BNetBuffer

   
 
virtual ~BNetEndpoint() 

Un destructeur typique.


Méthodes

 

 
 
 
 
 


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)

Ajoute les données spécifiées à la fin du buffer. Les valeurs entières sont automatiquement converties en network byte order (contrairement aux floats et aux doubles, ainsi que les valeurs dans les structures ajoutées via AppendData()).

Les Strings sont ajoutées comme chaines de caractères terminées par un un NULL.

AppendData() copie size octet en provenance du bufer pointé par data.

CODES DE RETOUR

B_OK. La donnée a été ajoutée sans problème.

  • B_ERROR. LA donnée n'a pas pu être ajoutée.

  •  

     


    Data() , Size() , BytesRemaining()

       
     
    unsigned char *Data(void) const
    size_t Size(void) const
    size_t BytesRemaining(void) const

    Data() renvoie un pointeur vers le tampon interne d'un BNetBuffer.

    Size() renvoie le nombre d'octets actuellement dans le buffer.

    BytesRemaining() renvoie le nombre d'octets encore inutilisés dans le buffer.
     
     
     
     
     


    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)

    Retiredu buffer un exemplaire du type de donnée spécifié. Les valeurs entières sont automatiquement converties en host byte order (contrairement aux floats et aux doubles, ainsi que les valeurs dans les structures retirées à l'aide de RemoveData()).

    Les chaînes de caractères (String) sont retirées comme des chaines de caractères terminées par NULL, de longueur inférieure ou égale à size octets. Assurez-vous que le buffer de chaine de caractères ait une capacité d'au moins size octets.

    RemoveData() enlève size octets et les copie dans le buffer pointé par data. Assurez-vous que le buffer pointé par  data ait une capacité d'au moins size octets.

    Ces fonctions commencent leur traitement à partir du début du buffer. Après que chaque donnée soit retirée, l'appel suivant à Remove...() commencera à l'octet suivant dans le buffer.

    VALEURS DE RETOUR

    B_OK. La donnée a été retiré sans problèmeThe data was removed without error.


    Size() voir  Data()


    Opérateurs


    = (affectation)

       
     
    BNetBuffer &operator =(const BNetBuffer &from)

    Copie le BnetBuffer spécifié par  from dans l'instance du coté gauche de l'opérateur d'affectation, dupliquant ainsi from. Si  from est connecté, l'objet du coté contiendra une réplique et ouvrira la même connection. S'il existe, le tampon de données est également dupliqué.


    Table des matières du Kit Réseau   Index du Kit Réseau

    The BeBook,
    ...in lovely HTML...
    for BeOS Release 5.
     

    Copyright © 2000 Be, Inc. All rights reserved..