Contenu du kit de Support | Index du Kit de Support |
Dérivée de: (aucune)
Déclarée dans: be/support/Flattenable.h
Bibliothèque: libbe.so
La classe BFlattenable déclare un protocole pour les objets qui peuvent être écrits dans un tampon non-typé; et charger depuis le tampon. En implémentant ce protocole, une classe donne aux autres la possibilité de manipuler cet objet de façon simplifier. Actuellement, seule la classe BMessage, par le biais des fonctions AddFlat() et FindFlat(), d&ecute;clare une API qui peut traiter avec des objets BFlattenable. La classe BPath dans le kit de Stockage dérive de BFlattenable.
Comme cette classe déclare seulement un protocole pour les autres classes à implémenter, elle n'inclue pas de constructeur et de destructeur.
|
Flatten() est implémenté par les classe dérivées pour écrire ("aplatir") l'objet dans le tampon buffer. il doit y avoir numBytes octets de mémoires disponibles à l'adresse buffer. Si il n'y a pas au moins autant de mémoire que la fonction FlattenedSize() dit être nécessaire, Flatten() retournera une erreur. Si c'est réussi, le retour est B_OK.
Unflatten() est implémenté par les classes dérivées pour positionner les valeurs de l'object depuis numBytes octets de données pris depuis buffer. Toutefois, les données ne seront lues que si le code type qui est passé indique que les données sont d'un type supporté—c'est à dire, seulement si la fonction AllowsTypeCode() retourne true pour code. Si la reconstruction de l'objet depuis des données "aplaties" est réussie, Unflatten() retournera B_OK. Sinon, elle retourne B_ERROR ou un code d'erreur plus descriptif.
|
Implémentée par les classes dérivées pour retourner le total de mémoire nécessaire pour tenir l'objet aplati. C'est le miminimum qui doit être alloué et pass´ à Flatten().
|
Implémentée par les classes dérivées pour retourner true si toutes les instances de la classe prennent le même total de mémoire quand elle sont "aplaties", et false si leurs tailles aplaties diffèrent. La taille diffèra, par exemple, si une chaîne de longueur variable fait partie des données aplaties.
|
TypeCode() est implémentée par les classes dérivées pour retourner le code type qui identifie le type de classe. Ce code est utilisé pour identifier une instance d'une classe dans son &ecute;tat aplati, par exemple lorsque c'est ajouté à un BMessage.
AllowsType() retourne true si le code qui est passé correspond au code retourné par TypeCode() et false sinon. Elle peut être modifiée dans les classes dérivés pour appliquer un standard plus libéral— pour permettre plus d'un code type pour identifer l'object.
voir aussi: BMessage::AddData()
Contenu du kit de Support | Index du Kit de Support |
Copyright © 2000 Be, Inc. All rights reserved..