Table des matières du kit de conversion     Index du kit de conversion

Objet BTranslator

Derivé de : BArchivable

Declaré dans: be/translation/Translator.h

Librairie: libtranslation.so

Sommaire

BTranslator est une classe résumée que vous sous-classez pour définir vos propres objets de conversion, un convertisseur par sous-classe BTranslator. Vous ajoutez des instances à votre sous-classe BTranslator vers un objet BTranslatorRoster au moyen de BTranslatorRoster::AddTranslator(). Les objets BTranslator que votre application crée et ajoute au Roster (tableau de service) ne sont pas visibles par d'autres applications.

Notez que le destructeur de l'objet BTranslator est protégé vous ne devez jamais supprimer (delete) un objet BTranslator en dehors de la classe. Au lieu de cela, vous le libérerez (Release() ). Voir Acquire() pour plus de détails.

Les premières fonctions de l'objet BTranslator sont similaires aux fonctions et aux données fournies par l'add-on de conversion. Pour la plupart des fonctions BTranslator, reportez vous aux desciptions dans Translator Add-ons.


Constructeur et Destructeur


BTranslator()

                                                         
  

BTranslator()

Le constructeur doit créer et retourner une nouvelle instance de votre sous-classe BTranslator. Notez que le constructeur n'alloue (Acquire()) pas l'objet qu'il retourne.


~BTranslator()

                                                         
  

~BTranslator()

Notez que le destructeur est protégé. Vous ne pouvez supprimmer un objet BTranslator que dans l'implémentation de la sous-classe. A l'extérieur de la classe, vous appellerez la désallocation Release().


Fonctions Membres


Acquire() , Release() , ReferenceCount()

                                                         
  

BTranslator *Acquire(void)

BTranslator *Release(void)

int32 ReferenceCount(void) Debugging use only!

Acquire() et Release() incrémentent et décrémentent le compteur de référence de l'objet. Le compteur commence à 1 (i.e .L'objet est implicitement alloué quand il est créé); si le compteur tombe à 0, l'objet est supprimé.

Quand vous ajoutez un objet BTranslator à un BTranslatorRoster, l'objet BTranslator est automatiquement alloué (Acquire()). Quand l'objet BTranslatorRoster est supprimé, ces objets BTranslators sont désalloués (Release()). Ainsi, quand vous instanciez un objet BTranslator et le rajoutiez à un objet BTranslatorRoster, vous et le 'Roster' maintenez conjointement la possession de l'objet. (Comme quand BTranslatorRoster devra détruire l'objet quand lui-même sera détruit), Appellez la désallocation (Release()) après avoir ajouté BTranslator au 'Roster'.

Acquire() et Release() retournent tous les deux un pointeur d'un objet BTranslator qui vient juste d'être alloué ou désalloué. Si Release() provoque la suppression de l'objet, NULL est retourné.

ReferenceCount(), qui retourne la valeur courante du compteur, est destiné uniquement au débuggage. Il n'est pas "thread-safe"! Ne basez pas votre code sur la valeur qu'elle retourne.


ReferenceCount() voir Acquire()


GetConfigurationMessage()

                                                         
  

virtual status_t GetConfigurationMessage(BMessage *ioExtension)

 
Optionnelle


Fonction membre qui demande à l'objet d'écrire son état courant dans l'argument BMessage. Voir GetConfigMessage() [Translator Add-ons] pour plus de détails.


Identify()

                                                         
  

virtual status_t Identify(BPositionIO *inSource,
      const translation_format *inFormat,
      BMessage *ioExtension,
      translator_info *outInfo,
      uint32 outType) = 0

 
Nécessaire


Fonction membre appellée par le convertisseur 'Roster' pour demander à l'objet BTranslator s'il sait comment convertir inSource dans le type décrit par outType. Voir Identify() [Translator Add-ons] pour plus de détails.


InputFormats() , OutputFormats()

                                                         
  

virtual const translation_format *InputFormats(int32 *count) const

virtual const translation_format *OutputFormats(int32 *count) const

 
Optionnelles


Ces fonctions doivent être implémentées pour retourner un tableau de structures translation_format qui décrit les formats supportés par cet objet. Si les fonctions ne sont pas implémentées, la fonction Identify() de l'objet sera appellée toutes les fois qu'une application demandera une conversion. Les deux fonctions doivent positionner count dans le nombre d'éléments du tableau de format.

 
Contrairement au tableau des adds-on de convertisseurs analogiques, le tableau retourné par ces fonctions n'a pas à être terminé par une structure translation_format vide.



MakeConfigurationView()

                                                         
  

virtual status_t MakeConfigurationView(BMessage *ioExtension,
      BView **outView,
      BRect *outExtent)

 
Optionnelle


Fonction membre qui laisse l'objet BTranslator alimenter une vue de configuration. Voir MakeConfig() [Translator Add-ons] pour plus de détails.


OutputFormats() voir InputFormats()


Translate()

                                                         
  

virtual status_t Translate(BPositionIO *inSource,
      const translator_info *inInfo,
      BMessage *ioExtension,
      uint32 outType,
      BPositionIO *outDestination) = 0

 
Nécessaire


Fonction membre qui demande à l'objet BTranslator de convertir des données de inSource vers le format outType, en écrivant dans outDestination. Voir Translate() [Translator Add-ons] pour plus de détails.


TranslatorInfo() , TranslatorName() , TranslatorVersion()

                                                         
  

virtual const char *TranslatorInfo(void) const = 0

virtual const char *TranslatorName(void) const = 0

virtual int32 TranslatorVersion(void) const = 0

 
Nécessaires


TranslatorInfo() retourne un pointeur pour le nom long du convertisseur, e.g. "aiff translator by the Pie Man (pie@the.man)".

TranslatorName() retourne un pointeur pour le nom court du convertisseur, e.g. "aiff translator". Le nom court peut être bien approprié pour être affiché dans un menu.

TranslatorVersion() donne un numéro de version sous forme "MM.mm" . Par exemple, TranslatorVersion() de 314 est interprété comme la version 3.14.


Table des matières du Kit de conversion     Index du kit de conversion


The Be Book,
...in lovely HTML...
for BeOS Release 5.

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