class DescriptedEntity


Héritage :


Méthodes publiques

[more] Constructeurs/Destructeurs
[more] Opérateurs
[more] Accès à la place dans la hiérarchie de classes
[more] Opérations sur les listes de descripteurs
[more] Affectation et accès aux valeurs des descripteurs
[more] Affichage


Hérité de BasicEntity:

Méthodes publiques

Constructeurs/Destructeurs

Identification de l'entité

Définition de la structure de l'entité, accès

Définition et accès à la place dans la hiérarchie de classes

Opérations sur la structure de l'entité

Accès aux moniteurs (démons)

Accès à la simulation


o Constructeurs/Destructeurs

o DescriptedEntity()
Constructeur de base, invoquant d'abord le constructeur de base de BasicEntity. Toute instance (indirecte) de cette classe est dotée d'un descripteur dont le symbole de classe est DESC_ID_FOR_SORTING. Ce descripteur est exploité par les opérateurs surchargés > et <. Il suffit de lui donner comme valeur le symbole de classe d'un autre descripteur de l'entité pour que les-dits opérateurs ordonnent les deux entités en jeu selon la valeur de ce descripteur. L'instance créée possède le type O_DESCRIPTED_ENTITY, valeur renvoyée par EntityType et qui surcharge celle donnée par le constructeur de BasicEntity.

o DescriptedEntity(const DescriptedEntity&)
Constructeur par copie profonde, invoquant d'abord le constructeur par copie de BasicEntity. En ce qui concerne les descripteurs, chacun est copié avec son constructeur par copie, puis la-dite copie se voit affecter l'entité copiée comme entité décrite. Ajoute l'entité en cours de création par copie à la liste des instances (indirectes) de DescriptedEntity.

o DescriptedEntity(const DescriptedEntity&, int partsCopied)
Même effet que le constructeur ci-dessus, mais les éléments ou les composants ne sont pas nécessairement copiés. Si l'argument 'partsCopied' est FALSE, ce rôle est laissé aux constructeurs par copie des sous-classes de l'application.

o ~DescriptedEntity()
Destructeur superficiel, invoquant d'abord le destructeur superficiel de BasicEntity. Les descripteurs sont détruits. Lorsque l'entité détruite possède des descripteurs dont les valeurs sont des entités, ces entités ne sont pas détruites.

o Opérateurs

oBoolean operator < (DescriptedEntity&)
Opérateur de infériorité. Renvoie vrai si et seulement si l'entité à gauche de l'opérateur est inférieure à l'entité à droite. En considérant le descripteur d dont le symbole de classe est la valeur du descripteur DESC_ID_FOR_SORTING, il y a infériorité si la valeur de d est plus petite pour l'entité à gauche que pour l'entité à droite.

oBoolean operator > (DescriptedEntity&)
Opérateur de supériorité. Renvoie vrai si et seulement si l'entité à gauche de l'opérateur est supérieure ou égale à l'entité à droite. En considérant le descripteur d dont le symbole de classe est la valeur du descripteur DESC_ID_FOR_SORTING, il y a supériorité si la valeur de d est plus grande pour l'entité à gauche que pour l'entité à droite ou si ls deux valeurs sont égales.

o Accès à la place dans la hiérarchie de classes

ovoid AddInstanceToClass()
Invoque AddInstanceToClass de BasicEntity puis équipe les descripteurs en fonction d'éventuelles spécifications de sortie. Cette méthode doit obligatoirement être invoquée dans le constructeur de chaque sous-classe utilisateur des entités avec descripteurs. A utiliser seulement si on a déjà déclaré le symbole de classe et le nom de classe.

o Opérations sur les listes de descripteurs

ovoid AddConstantDescriptor(Descriptor*)
Ajoute le descripteur à la liste des descripteurs constants du récepteur, s'il n'y est pas déjà. Lève l'exception BadDescriptorTypeWhenAdd.

ovoid AddVariableDescriptor(Descriptor*)
Ajoute le descripteur à la liste des descripteurs variables du récepteur, s'il n'y est pas déjà. Lève l'exception BadDescriptorTypeWhenAdd.

oint GetConstantDescriptorPosition(UserDescriptorId) const
Renvoie la position du descripteur constant dont le symbole de classe est passé en argument, ou bien -9 s'il n'existe pas.

oConstantDescriptor* GetConstantDescriptor(UserDescriptorId) const
Renvoie le descripteur constant dont le symbole de classe est passé en argument. Lève l'exception InexistantConstantDescriptor.

oint GetVariableDescriptorPosition(UserDescriptorId) const
Renvoie la position du descripteur variable dont le symbole de classe est passé en argument, ou bien -9 s'il n'existe pas.

oVariableDescriptor* GetVariableDescriptor(UserDescriptorId) const
Renvoie le descripteur variable dont le symbole de classe est passé en argument. Lève l'exception InexistantVariableDescriptor.

oDescriptor* GetDescriptor(UserDescriptorId) const
Renvoie le descripteur variable ou constant dont le symbole de classe est passé en argument. Lève l'exception InexistantDescriptor.

oDescriptor* GetDescriptor(char*) const
Renvoie le descripteur variable ou constant dont le nom de classe est passé en argument. Lève l'exception InexistantDescriptor.

opConstantDescriptorTab ConstantDescriptorTab() const
Renvoie la table des descripteurs constants

opVariableDescriptorTab VariableDescriptorTab() const
Renvoie la table des descripteurs variables

o Affectation et accès aux valeurs des descripteurs

oBoolean DefaultValueIsAssigned(UserDescriptorId id) const
Renvoie vrai si la valeur courante du descripteur de classe id est sa valeur par défaut et faux sinon.

o Affectation et accès standard
Les méthodes SetValue affectent une valeur (entière, flottante, flottante double précision, entité ou chaîne de caractères) au descripteur dont le symbole de classe est donné en premier argument. La méthode SetStringValue fait préalablement une copie de la chaîne passée en argument.
Les méthodes Get..Value renvoient la valeur du descripteur dont le symbole de classe est donné en premier argument.
Les deux groupes de méthodes lèvent les exceptions BadDescriptorValueType et InexistantDescriptor, ainsi que les exceptions OutOf..Domain. Si un démon est attaché au descripteur, il sera déclenché, sauf si un argument de type Boolean est fourni et que sa valeur est FALSE.
Le premier argument de toutes les fonctions doit être de type int (UserDescriptorId est un alias de int). En général, l'utilisateur établiera une correspondance entre ces valeurs entières et des symboles évocateurs dans son domaine d'application. Cette correspondance sera typiquement réalisée dans le fichier UserTypes.h, par des déclarations de types énumérés : enum <type> {symb1, ..., symbn};. Voir page 'Les types d'identificateurs de classes'.

Le service DepthDeleteStringTabValue récupère la mémoire allouée au tableau de chaînes qui est la valeur du descripteur dont le symbole est passé en argument, ainsi que la mémoire allouée aux chaînes éléments du tableau.

ovoid SetIntValue(UserDescriptorId, int)

ovoid SetIntValue(UserDescriptorId, int, Boolean)

ovoid SetFloatValue(UserDescriptorId, float)

ovoid SetFloatValue(UserDescriptorId, float, Boolean)

ovoid SetDoubleValue(UserDescriptorId, double)

ovoid SetDoubleValue(UserDescriptorId, double, Boolean)

ovoid SetEntityValue(UserDescriptorId, BasicEntity*)

ovoid SetEntityValue(UserDescriptorId, BasicEntity*, Boolean)

ovoid SetEntitySpecValue(UserDescriptorId, EntitySpec*)

ovoid SetStringValue(UserDescriptorId, char*)

ovoid SetStringValue(UserDescriptorId, char*, Boolean)

ovoid SetIntDomainValue(UserDescriptorId, pIntIntervalTab*)

ovoid SetIntDomainValue(UserDescriptorId, pIntIntervalTab*, Boolean)

ovoid SetFloatDomainValue(UserDescriptorId, pFloatIntervalTab*)

ovoid SetFloatDomainValue(UserDescriptorId, pFloatIntervalTab*, Boolean)

ovoid SetDoubleDomainValue(UserDescriptorId, pDoubleIntervalTab*)

ovoid SetDoubleDomainValue(UserDescriptorId, pDoubleIntervalTab*, Boolean)

ovoid SetStringTabValue(UserDescriptorId, TableauString*)

ovoid SetStringTabValue(UserDescriptorId, TableauString*, Boolean)

ovoid ClearEntityTabValues(UserDescriptorId)

ovoid SetEntityTabValue(UserDescriptorId, pEntityTab*)

ovoid SetEntityTabValue(UserDescriptorId, pEntityTab*, Boolean)

ovoid ClearDescValueSpecTabValues(UserDescriptorId)

ovoid SetDescValueSpecTabValue(UserDescriptorId, pDescValueSpecTab*)

ovoid SetDescValueSpecTabValue(UserDescriptorId, pDescValueSpecTab*, Boolean)

ovoid SetIntTabValue(UserDescriptorId, TableauInt*)

ovoid SetIntValueElement(UserDescriptorId, int, int)

ovoid ClearFloatTabValues(UserDescriptorId)

ovoid SetFloatTabValue(UserDescriptorId, TableauFloat*)

ovoid SetFloatValueElement(UserDescriptorId, int, float)

ovoid SetDoubleTabValue(UserDescriptorId, TableauDouble*)

ovoid SetDoubleValueElement(UserDescriptorId, int, double)

oint GetIntValue(UserDescriptorId)

oint GetIntValue(UserDescriptorId, Boolean)

ofloat GetFloatValue(UserDescriptorId)

ofloat GetFloatValue(UserDescriptorId, Boolean)

odouble GetDoubleValue(UserDescriptorId)

odouble GetDoubleValue(UserDescriptorId, Boolean)

oBasicEntity* GetBasicEntityValue(UserDescriptorId)

oEntity* GetEntityValue(UserDescriptorId)

oBasicEntity* GetBasicEntityValue(UserDescriptorId, Boolean)

oEntity* GetEntityValue(UserDescriptorId, Boolean)

ochar* GetStringValue(UserDescriptorId)

ochar* GetStringValue(UserDescriptorId, Boolean)

oEntitySpec* GetEntitySpecValue(UserDescriptorId)

opIntIntervalTab* GetIntDomainValue(UserDescriptorId)

opIntIntervalTab* GetIntDomainValue(UserDescriptorId, Boolean)

oIntInterval* GetIntDomainValueElement(UserDescriptorId, int)

oIntInterval* GetIntDomainValueElement(UserDescriptorId, int, Boolean)

opFloatIntervalTab* GetFloatDomainValue(UserDescriptorId)

opFloatIntervalTab* GetFloatDomainValue(UserDescriptorId, Boolean)

oFloatInterval* GetFloatDomainValueElement(UserDescriptorId, int)

oFloatInterval* GetFloatDomainValueElement(UserDescriptorId, int, Boolean)

opDoubleIntervalTab* GetDoubleDomainValue(UserDescriptorId)

opDoubleIntervalTab* GetDoubleDomainValue(UserDescriptorId, Boolean)

oDoubleInterval* GetDoubleDomainValueElement(UserDescriptorId, int)

oDoubleInterval* GetDoubleDomainValueElement(UserDescriptorId, int, Boolean)

oTableauString* GetStringTabValue(UserDescriptorId)

oTableauString* GetStringTabValue(UserDescriptorId, Boolean)

ovoid DepthDeleteStringTabValue(UserDescriptorId)

opEntityTab* GetEntityTabValue(UserDescriptorId)

opEntityTab* GetEntityTabValue(UserDescriptorId, Boolean)

opDescValueSpecTab* GetDescValueSpecTabValue(UserDescriptorId)

opDescValueSpecTab* GetDescValueSpecTabValue(UserDescriptorId, Boolean)

oTableauInt* GetIntTabValue(UserDescriptorId)

oTableauFloat* GetFloatTabValue(UserDescriptorId)

oTableauDouble* GetDoubleTabValue(UserDescriptorId)

oint GetIntValueElement(UserDescriptorId, int)

ofloat GetFloatValueElement(UserDescriptorId, int)

odouble GetDoubleValueElement(UserDescriptorId, int)

o Affectation et accès sans vérification de la classe
Les méthodes SetVarValue et SetConstValue ne diffèrent des méthodes SetValue que par le fait qu'elles portent sur des descripteurs dont on sait qu'ils existent et qu'ils sont, respectivement variables ou constants : elles ne cherchent donc pas à lever l'exception InexistantDescriptor.
Il en est de même pour les méthodes Get..VarValue et Get..ConstValue.

ovoid SetIntVarValue(UserDescriptorId, int)

ovoid SetIntVarValue(UserDescriptorId, int, Boolean)

ovoid SetFloatVarValue(UserDescriptorId, float)

ovoid SetFloatVarValue(UserDescriptorId, float, Boolean)

ovoid SetDoubleVarValue(UserDescriptorId, double, Boolean)

ovoid SetEntityVarValue(UserDescriptorId, BasicEntity*)

ovoid SetEntityVarValue(UserDescriptorId, BasicEntity*, Boolean)

ovoid SetStringVarValue(UserDescriptorId, char*)

ovoid SetStringVarValue(UserDescriptorId, char*, Boolean)

ovoid SetEntitySpecVarValue(UserDescriptorId, EntitySpec*)

ovoid SetIntDomainVarValue(UserDescriptorId, pIntIntervalTab*)

ovoid SetIntDomainVarValue(UserDescriptorId, pIntIntervalTab*, Boolean)

ovoid SetFloatDomainVarValue(UserDescriptorId, pFloatIntervalTab*)

ovoid SetFloatDomainVarValue(UserDescriptorId, pFloatIntervalTab*, Boolean)

ovoid SetDoubleDomainVarValue(UserDescriptorId, pDoubleIntervalTab*)

ovoid SetDoubleDomainVarValue(UserDescriptorId, pDoubleIntervalTab*, Boolean)

ovoid SetStringTabVarValue(UserDescriptorId, TableauString*)

ovoid SetStringTabVarValue(UserDescriptorId, TableauString*, Boolean)

ovoid SetEntityTabVarValue(UserDescriptorId, pEntityTab*)

ovoid SetEntityTabVarValue(UserDescriptorId, pEntityTab*, Boolean)

ovoid SetDescValueSpecTabVarValue(UserDescriptorId, pDescValueSpecTab*)

ovoid SetDescValueSpecTabVarValue(UserDescriptorId, pDescValueSpecTab*, Boolean)

ovoid SetIntConstValue(UserDescriptorId, int)

ovoid SetFloatConstValue(UserDescriptorId, float)

ovoid SetDoubleConstValue(UserDescriptorId, double)

ovoid SetEntityConstValue(UserDescriptorId, BasicEntity*)

ovoid SetStringConstValue(UserDescriptorId, char*)

ovoid SetEntitySpecConstValue(UserDescriptorId, EntitySpec*)

ovoid SetIntDomainConstValue(UserDescriptorId, pIntIntervalTab*)

ovoid SetFloatDomainConstValue(UserDescriptorId, pFloatIntervalTab*)

ovoid SetDoubleDomainConstValue(UserDescriptorId, pDoubleIntervalTab*)

ovoid SetStringTabConstValue(UserDescriptorId, TableauString*)

ovoid SetEntityTabConstValue(UserDescriptorId, pEntityTab*)

ovoid SetDescValueSpecTabConstValue(UserDescriptorId, pDescValueSpecTab*)

ovoid SetIntTabConstValue(UserDescriptorId, TableauInt*)

ovoid SetIntConstValueElement(UserDescriptorId, int, int)

ovoid SetFloatTabConstValue(UserDescriptorId, TableauFloat*)

ovoid SetFloatConstValueElement(UserDescriptorId, int, float)

ovoid SetDoubleTabConstValue(UserDescriptorId, TableauDouble*)

ovoid SetDoubleConstValueElement(UserDescriptorId, int, double)

oint GetIntVarValue(UserDescriptorId)

oint GetIntVarValue(UserDescriptorId, Boolean)

ofloat GetFloatVarValue(UserDescriptorId)

ofloat GetFloatVarValue(UserDescriptorId, Boolean)

odouble GetDoubleVarValue(UserDescriptorId)

odouble GetDoubleVarValue(UserDescriptorId, Boolean)

oBasicEntity* GetBasicEntityVarValue(UserDescriptorId)

oEntity* GetEntityVarValue(UserDescriptorId)

oBasicEntity* GetBasicEntityVarValue(UserDescriptorId, Boolean)

oEntity* GetEntityVarValue(UserDescriptorId, Boolean)

ochar* GetStringVarValue(UserDescriptorId)

ochar* GetStringVarValue(UserDescriptorId, Boolean)

oEntitySpec* GetEntitySpecVarValue(UserDescriptorId)

opIntIntervalTab* GetIntDomainVarValue(UserDescriptorId)

opIntIntervalTab* GetIntDomainVarValue(UserDescriptorId, Boolean)

opFloatIntervalTab* GetFloatDomainVarValue(UserDescriptorId)

opFloatIntervalTab* GetFloatDomainVarValue(UserDescriptorId, Boolean)

opDoubleIntervalTab* GetDoubleDomainVarValue(UserDescriptorId)

opDoubleIntervalTab* GetDoubleDomainVarValue(UserDescriptorId, Boolean)

oTableauString* GetStringTabVarValue(UserDescriptorId)

oTableauString* GetStringTabVarValue(UserDescriptorId, Boolean)

opEntityTab* GetEntityTabVarValue(UserDescriptorId)

opEntityTab* GetEntityTabVarValue(UserDescriptorId, Boolean)

opDescValueSpecTab* GetDescValueSpecTabVarValue(UserDescriptorId)

opDescValueSpecTab* GetDescValueSpecTabVarValue(UserDescriptorId, Boolean)

oint GetIntConstValue(UserDescriptorId) const

ofloat GetFloatConstValue(UserDescriptorId) const

odouble GetDoubleConstValue(UserDescriptorId) const

oBasicEntity* GetBasicEntityConstValue(UserDescriptorId) const

oEntity* GetEntityConstValue(UserDescriptorId) const

ochar* GetStringConstValue(UserDescriptorId) const

oEntitySpec* GetEntitySpecConstValue(UserDescriptorId) const

opIntIntervalTab* GetIntDomainConstValue(UserDescriptorId) const

opFloatIntervalTab* GetFloatDomainConstValue(UserDescriptorId) const

opDoubleIntervalTab* GetDoubleDomainConstValue(UserDescriptorId) const

oTableauString* GetStringTabConstValue(UserDescriptorId) const

opEntityTab* GetEntityTabConstValue(UserDescriptorId) const

opDescValueSpecTab* GetDescValueSpecTabConstValue(UserDescriptorId) const

oTableauInt* GetIntTabConstValue(UserDescriptorId) const

oTableauFloat* GetFloatTabConstValue(UserDescriptorId) const

oTableauDouble* GetDoubleTabConstValue(UserDescriptorId) const

oint GetIntConstValueElement(UserDescriptorId, int) const

ofloat GetFloatConstValueElement(UserDescriptorId, int) const

odouble GetDoubleConstValueElement(UserDescriptorId, int) const

o Affectation avec ajustement du type
Les méthodes SetCastValue ne diffèrent des méthodes SetValue qu'en ce qu'elles tolèrent, dans une certaine limite, que la valeur passée en argument ne soit pas du même type que le descripteur auquel elle est affectée. Un argument de type int pourra être affecté (après un cast) à un descripteur entier, flottant ou double. Un argument de type float ou double pourra être affecté (après un cast) à un descripteur flottant ou double. Cette méthode ne peut accepter aucune autre différence de type : par exemple un argument de type float ne peut pas être affecté à un descripteur entier.

ovoid SetIntCastValue(UserDescriptorId, int)

ovoid SetFloatCastValue(UserDescriptorId, float)

ovoid SetDoubleCastValue(UserDescriptorId, double)

o Incrémentation
Les méthodes IncrValue et DecrValue augmentent de 1 et diminue de 1 (respectivement) la valeur d'un descripteur variable dont le type doit être entier.

Les méthodes IncreaseIntValue et DecreaseIntValue augmentent de et diminue (respectivement) d'une valeur passée en paramètre la valeur d'un descripteur variable dont le type doit être entier.

Ces groupes de méthodes ne lèvent que l'exception BadDescriptorValueType. Si un démon est attaché au descripteur, il sera déclenché, sauf si un argument de type Boolean est fourni et que sa valeur est FALSE.

ovoid IncrValue(UserDescriptorId)

ovoid IncrValue(UserDescriptorId, Boolean)

ovoid DecrValue(UserDescriptorId)

ovoid DecrValue(UserDescriptorId, Boolean)

ovoid IncreaseIntValue(UserDescriptorId, int)

ovoid IncreaseIntValue(UserDescriptorId, int, Boolean)

ovoid DecreaseIntValue(UserDescriptorId, int)

ovoid DecreaseIntValue(UserDescriptorId, int, Boolean)

o Affectation de valeur partielle
Les méthodes AddValueElement complètent une valeur de descripteur, lorsque celle-ci est un ensemble de plusieurs éléments. C'est le cas des descripteurs dont la valeur est un tableau d'entités, de chaînes de caractères, un tableau d'intervalles d'entiers ou un tableau de flottants.

ovoid AddIntDomainValueElement(UserDescriptorId, int inf, int sup)
Ajoute l'intervalle [inf, sup] en fin du tableau qui est la valeur du descripteur dont le symbole est passé en premier argument. inf doit être supérieur à la borne supérieure du dernier intervalle déjà ajouté.

ovoid AddFloatDomainValueElement(UserDescriptorId, float inf, float sup)

ovoid AddDoubleDomainValueElement(UserDescriptorId, double inf, double sup)

ovoid AddStringValueElement(UserDescriptorId, char* str)
Le moteur désallouera la chaîne str par free. L'utilisateur doit donc l'allouer par strdup.

ovoid AddEntityValueElement(UserDescriptorId, BasicEntity* pObj)
Ajoute l'entité pObj en fin du tableau qui est la valeur du descripteur dont le symbole est passé en premier argument

ovoid AddEntityValueElement(UserDescriptorId, BasicEntity* pObj, Boolean)

ovoid RemoveEntityValueElement(UserDescriptorId descId, BasicEntity* pObj)

ovoid AddEntityValueElements(UserDescriptorId, pEntityTab* pObj)
Ajoute une à une les entités du tableau fourni en second argument en fin du tableau qui est la valeur du descripteur dont le symbole est passé en premier argument

ovoid AddDescValueSpecValueElement(UserDescriptorId, DescValueSpec* pDVS)
Ajoute la spécification de domaine de valeur pDVS en fin du tableau qui est la valeur du descripteur dont le symbole est passé en premier argument

ovoid AddDescValueSpecValueElement(UserDescriptorId, DescValueSpec* pDVS, Boolean)

ovoid RemoveDescValueSpecValueElement(UserDescriptorId descId, DescValueSpec* pDVS)

ovoid AddDescValueSpecValueElements(UserDescriptorId, pDescValueSpecTab*)
Ajoute une à une les entités du tableau fourni en second argument en fin du tableau qui est la valeur du descripteur dont le symbole est passé en premier argument

ovoid AddIntValueElement(UserDescriptorId descId, int)

ovoid AddFloatValueElement(UserDescriptorId descId, float)

ovoid AddDoubleValueElement(UserDescriptorId descId, double)

ovoid CopyDescriptorValuesFrom(DescriptedEntity* pOrig)
Sélectionne les descripteurs de l'entité pOrig qui sont aussi descripteurs de l'entité réceptrice du message, et leur affecte, dans l'entité réceptrice, les valeurs des descripteurs dans pOrig. Pour les descripteurs de type STRING_TAB et ENTITY_TAB, la valeur affectée est une copie du tableau d'origine. Pour les descripteurs de type STRING, la valeur affectée est une copie de la chaîne d'origine.

o Affichage

ovoid DisplayAttributes() const
Affiche les informations sur la structure du récepteur, ainsi que les valeurs des descripteurs.


Classes descendantes directes :
Entity

This page was generated with the help of DOC++.