class BasicEntity


Héritage :


Méthodes publiques

[more] Constructeurs/Destructeurs
[more] Identification de l'entité
[more] Définition de la structure de l'entité, accès
[more] Affichage
[more] Définition et accès à la place dans la hiérarchie de classes
[more] Opérations sur la structure de l'entité
[more] Accès aux moniteurs (démons)
[more] Accès à la simulation


o Constructeurs/Destructeurs

o BasicEntity()
Constructeur de base, invoqué seulement par les constructeurs des sous-classes. Ajoute l'entité en cours de création à la liste des instances (indirectes) de BasicEntity. Il est important de noter qu'aucune entité ne doit être créée avant que la simulation ne soit initialisée par la construction d'une instance de la classe Simulation, et plus particulièrement qu'une date courante lui soit affectée (0 par défaut). La connaissance de la date de création est effet nécessaire à la gestion de la sauvegarde de certaines informations sur l'entité (en particulier la valeur des descripteurs constants dans la sous-classe DescriptedEntity). L'instance créée possède le type BD_BASIC_ENTITY, valeur renvoyée par EntityType.

o BasicEntity(const BasicEntity&)
Constructeur par copie profonde (c'est-à-dire copie des composants et des éléments). Un nom d'instance distinct de celui de l'entité copiée est attribué par la règle par défaut (un numéro unique concaténé derrière le nom de classe, voir SetInstanceName). Les méthodes du démon éventuellement attaché à la structure de l'entité sont déclenchées. Ajoute l'entité en cours de création par copie à la liste des instances (indirectes) de BasicEntity.

o BasicEntity(const BasicEntity&, 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 ~BasicEntity()
Destructeur superficiel (les composants et les éléments ne sont pas détruits ; le démon éventuellement attaché à la structure n'est pas détruit). Enlève l'entité en cours de destruction de la liste des instances (directes) de sa propre classe, puis de la liste des instances des classes parentes, jusqu'à la classe BasicEntity (méthode RemoveInstanceFromClass).

ovoid DeleteInDepth()
Destructeur profond. Les composants et les éléments sont détruits, puis il est fait appel au destructeur superficiel.

o Identification de l'entité

oObjectClassId EntityType() const
Renvoie le type de l'entité : O_BASIC_ENTITY, O_DESCRIPTED_ENTITY ou O_ENTITY. Ne pas confondre avec le symbole de classe : les classes descendant de BasicEntity ont des symboles tous différents mais un type unique.

ovoid ClassSymbol(UserClassId)
Affecte un symbole de classe au récepteur.

oUserClassId ClassSymbol() const
Renvoie le symbole de classe du récepteur

ovoid ClassName(char*)
Affecte un nom de classe au récepteur du message. Toute instance doit se voir affecter un nom de classe (typiquement par un appel à la méthode AddInstanceToClass dans le constructeur de la classe, voir pages 'Gestion de la hiérarchie des classes d'entités' et 'Définition et accès à la place dans la hiérarchie de classes'). Le nom de classe est le même pour toutes les instances d'une classe. Pour une exploitation dans le fichier de spécifications de sorties, le nom ne doit comporter que des caractères ASCII sans espace.

ochar* ClassName() const
Renvoie le nom de classe du récepteur

ovoid SetInstanceName(char*)
Affecte un nom d'instance au récepteur du message, qui surcharge le nom d'instance par défaut attribué par le moteur. Ce nom par défaut est la concaténation du nom de classe et d'un nombre entier positif unique sur l'ensemble de toutes les instances de toutes les classes de DIESE.

ochar* InstanceName() const
Renvoie le nom d'instance du récepteur

ovoid SetMetaClass(UserClassId id)
Attache à l'entité la métaclasse correspondant au symbole de classe passé en argument. Doit être invoqué comme première instruction e tout constructeur d'entité. Lève l'exception MetaClassNotYetCreated si la métaclasse n'a pas été créée par CreateMetaClass (dans App_InstallMetaClasses()).

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

ovoid SuperSetClassId(UserClassId)
Affecte un symbole de classe unique pour les sur-ensembles du récepteur.

ovoid SuperSetClassIds(UserClassId, UserClassId)
Affecte deux symboles de classe pour les sur-ensembles du récepteur.

ovoid AddSuperSetClassId(UserClassId)
Ajoute un symbole de classe pour les sur-ensembles du récepteur.

oUserClassId SuperSetClassId() const
Renvoie le symbole de classe des sur-ensembles du récepteur, si l'entité n'est élément que d'ensembles de la même classe.

oUserClassIdTab SuperSetClassIdTab() const
Renvoie le tableau des symboles des classes des sur-ensembles du récepteur.

ovoid ElementClassId(UserClassId)
Affecte un symbole de classe unique pour les éléments du récepteur.

oUserClassId ElementClassId() const
Renvoie le symbole de classe des éléments du récepteur.

ovoid AddComponentClassId(UserClassId)
Ajoute un symbole à la table des symboles de classe des composants du récepteur, et donne la valeur de pointeur NULL à l'élément correspondant du tableau des composants. Le récepteur pourra alors avoir un composant, et un seul, de la classe dont le symbole vient d'être ajouté ou d'une classe descendante.

oUserClassIdTab ComponentClassIdTab() const
Renvoie la liste des symboles de classe des composants du récepteur.

opEntityTab GetComponentTab() const
Renvoie la liste des composants du récepteur.

ovoid GetComponentTab(pEntityTab& tab) const
Donne comme valeur à l'argument tab la liste des composants du récepteur

opEntityTab GetDepthComponentTab(UserClassId id) const
Renvoie la liste des entités de classe id qui sont en position de composants directs ou indirects dans les composants ou les éléments du récepteur, à quelque profondeur que ce soit

ovoid GetDepthComponentTab(UserClassId id, pEntityTab& tab) const
Donne comme valeur à l'argument tab la liste des entités de classe id qui sont en position de composants directs ou indirects dans les composants ou les éléments du récepteur, à quelque profondeur que ce soit

oBasicEntity* GetBasicComponent(UserClassId id)
Renvoie le composant dont le symbole de classe est soit id soit celui d'une classe descendante de celle de symbole id. La valeur NULL est renvoyée si le composant est présent mais de valeur NULL (affectée par exemple dès la construction de l'entité alors que le composant de ce type n'est pas encore créé). Lève l'exception BadComponentClassId si le composant est complètement absent.

oBasicEntity* GetBasicComponent(UserClassId id, Boolean failIfNull)
Opère comme le service ci-dessus, mais suppose que le composant est une instance d'Entity. Aucune exception n'est levée si le second argumenty est FALSE.

oEntity* GetComponent(UserClassId id)
Opère comme le service ci-dessus, mais suppose que le composant est une instance d'Entity

oEntity* GetComponent(UserClassId id, Boolean failIfNull)
Opère comme le service ci-dessus, mais suppose que le composant est une instance d'Entity. Aucune exception n'est levée si le second argumenty est FALSE.

oBasicEntity* GetBasicComponent(char* nom)
Renvoie le composant dont le nom de classe est soit nom soit celui d'une classe descendante de celle de nom nom. La valeur NULL est renvoyée si le composant est présent mais de valeur NULL (affectée par exemple dès la construction de l'entité alors que le composant de ce type n'est pas encore créé). Lève l'exception BadComponentName si le composant est complètement absent.

oEntity* GetComponent(char* nom)
Opère comme le service ci-dessus, mais suppose que le composant est une instance d'Entity

oBasicEntity* GetBasicSuperEntity()
Renvoie la super-entité du récepteur ou le pointeur NULL s'il n'en existe pas.

oEntity* GetSuperEntity()
Opère comme le service ci-dessus, mais suppose que la super-entité est une instance d'Entity.

opEntityTab GetSuperSetTab() const
Renvoie la liste des sur-ensembles du récepteur.

oBasicEntity* GetBasicSuperSet() const
Renvoie le (ou le seul) sur-ensemble du récepteur.

oEntity* GetSuperSet() const
Opère comme le service ci-dessus, mais suppose que le sur-ensemble est une instance d'Entity.

oBasicEntity* GetBasicSuperSet(int k) const
Renvoie le sur-ensemble de rang k, supposé valide, du récepteur.

oEntity* GetSuperSet(int k) const
Opère comme le service ci-dessus, mais suppose que le sur-ensemble est une instance d'Entity.

oint GetNumberOfSuperSets() const
Renvoie le nombre de sur-ensembles du récepteur.

obool HasInSuperSets(BasicEntity*) const
Renvoie vrai si l'entité passée en argument est dans la liste des sur-ensembles de this, et faux sinon.

opEntityTab GetContainerTab(UserClassId id) const
Renvoie la liste des entités de la classe id qui contiennent le récepteur du message en position de composant ou d'élément à une profondeur quelconque.

opEntityTab GetContainerTab(UserClassId id, Boolean flag) const
Renvoie une liste d'entités qui contiennent le récepteur du message en position de composant ou d'élément à une profondeur quelconque. Si le second argument est TRUE, les éléments de la liste renvoyée sont seulement de la classe id. S'il est FALSE, les éléments sont de la classe id ou d'une classe descendante.

oBasicEntity* GetFirstContainer(UserClassId id, Boolean flag) const
Renvoie la première entité de la classe id (ou, si le second argument est 'vrai', d'une classe fille de id), trouvée en remontant à partir de 'this', dont 'this' est composant ou élément à une profondeur quelconque.

opEntityTab GetElementTab() const
Renvoie la liste des élements du récepteur.

ovoid GetElementTab(pEntityTab& tab) const
Donne comme valeur à l'argument tab la liste des élements du récepteur

ovoid SetElementTab(pEntityTab& tab)
Donne l'argument tab comme valeur de la liste des élements du récepteur

ovoid SetElementTabIncrement(int)
Définit l'incrément du tableau des éléments

opEntityTab GetDepthElementTab(UserClassId id) const
Renvoie la liste des entités de la classe id ou d'une classe qui descend de id, qui sont éléments ou en position d'élements dans les composants ou les éléments du récepteur, à quelque profondeur que ce soit

ovoid GetDepthElementTab(UserClassId id, pEntityTab& tab) const
Donne comme valeur à l'argument tab la liste des entités de la classe id ou d'une classe qui descend de id, qui sont éléments ou en position d'élements dans les composants ou les éléments du récepteur, à quelque profondeur que ce soit

oBoolean HasAsElement(UserClassId id) const
Renvoie vrai si une entité de la classe dont le symbole est passé en argument est un élément de this à une profondeur quelconque faux sinon.

oBasicEntity* HasAsElement(BasicEntity*) const
Si l'entité passée en argument est un élément de this à une profondeur quelconque, cette entité est renvoyée. Renvoie NULL sinon.

oBasicEntity* GetBasicElement() const
Renvoie le premier (ou le seul) élement du récepteur.

oEntity* GetElement() const
Opère comme le service ci-dessus, mais suppose que l'élement est une instance d'Entity.

oBasicEntity* GetBasicElement(int k) const
Renvoie l'élement de rang k (k de 0 à n-1) du récepteur, si un tel élément existe, et le pointeur NULL sinon.

oEntity* GetElement(int k) const
Opère comme le service ci-dessus, mais suppose que l'élement est une instance d'Entity

oBasicEntity* GetLastElement() const
Renvoie le dernier élement du récepteur.

oBasicEntity* GetNamedElement(char*) const
Renvoie l'élement dont le nom d'instance est passé en argument, et NULL si on ne l'a pas trouvé

oBasicEntity* GetDepthNamedElement(char*) const
Renvoie l'élement, à une profondeur quelconque, dont le nom d'instance est passé en argument, et NULL si on ne l'a pas trouvé

oBasicEntity* GetClassNamedElement(char*) const
Renvoie le premier élement dont le nom de classe est passé en argument

oBasicEntity* GetDepthClassNamedElement(char*) const
Renvoie le premier élement, à une profondeur quelconque, dont le nom de classe est passé en argument

oBasicEntity* GetClassNamedElement(UserClassId) const
Renvoie le premier élement dont le symbole de classe est passé en argument

oBasicEntity* GetDepthClassNamedElement(UserClassId) const
Renvoie le premier élement, à une profondeur quelconque, dont le symbole de classe est passé en argument

oint GetNumberOfElements() const
Renvoie le nombre d'éléments du récepteur.

oint GetElementPosition(BasicEntity*) const
Renvoie le rang de l'élément passé en argument (0 si c'est le premier élémént), ou -9 s'il n'est pas élément.

o Affichage

ovoid Display() const
Affiche les informations sur la structure du récepteur (composants, éléments,…).

ovoid DisplayElementTab() const
Affiche l'adresse du tableau des éléments et, entre deux parenthèses, la liste des valeurs de pointeurs sur les éléments.

ovoid DisplayElementNames() const
Affiche entre deux parenthèses la liste des noms des éléments, sans retour à la ligne entre eux.

ovoid DisplayAttributes() const
Affiche les informations sur la structure du récepteur, et aussi les valeurs des descripteursindex{méthodes!DisplayAttributes}

ovoid DisplayInDepth(int k) const
Affiche les informations sur la structure du récepteur, ainsi que sur ses composants et éléments. Les lignes d'information sur l'entité réceptrice (de niveau 0) sont indentées de k caractères (typiquement 0). Les lignes sur les entités de plus bas niveaux (n = 1…) sont indentées de caractères.

ovoid DisplayInDepth() const
A le même effet que DisplayInDepth(0)

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

Il est possible de définir une hiérarchie de classes pour les entités. Par exemple, on veut dire que C est une sorte de B, et que B est une sorte de A. Une fois cette hiérarchie définie (voir page 'Gestion de la hiérarchie des classes d'entités'), les services ci-dessus permettent de tester les liens de filiation entre classes, et de déterminer si une entité possède les propriétés d'une classe, soit parce qu'il est instance directe de la classe, soit parce que sa propre classe a hérité ces propriétés.

ovoid AddInstanceToClass()
Attribue un symbole de classe et un nom de classe à l'entité réceptrice du message, puis ajoute l'entité à la liste des instances de sa classe. Crée la liste si l'entité est la première instance créée pour cette classe. Attention ! Cette méthode doit obligatoirement être invoquée dans le constructeur de chaque sous-classe utilisateur des entités (voir page 'Gestion de la hiérarchie des classes d'entités'). Elle inclut notamment les effets des appels ClassSymbol(id) et ClassName(nomc).

ovoid RemoveInstanceFromClass(UserClassId id)
Cette méthode, décrite ici pour information, est invoquée dans le destructeur de la classe BasicEntity et ne doit normalement pas être invoquée dans le code utilisateur. Elle retire l'entité de la liste des instances de sa classe. Attention ! cette méthode n'est pas le destructeur défini pour la classe. C'est ce dernier qui doit être invoqué pour libérer l'espace occupé par l'entité elle-même.

oUserClassIdTab ParentIds() const
Renvoie la liste des symboles des classes immédiatement parentes. Le symbole de la classe même du récepteur n'est pas inclus dans la liste.

oUserClassIdTab AncestorIds() const
Renvoie la liste des symboles des classes parentes, à tous les niveaux supérieurs. Le symbole de la classe même du récepteur n'est pas inclus dans la liste.

ovoid AncestorIds(UserClassIdTab& result) const
Etablit la liste des symboles des classes parentes, à tous les niveaux supérieurs. Le symbole de la classe même du récepteur n'est pas inclus dans la liste. Le résultat devient la valeur du second argument (transmis par référence au programme appelant).

oBoolean IsDirectInstanceOf(UserClassId) const
Renvoie vrai si le récepteur du message est une instance de la classe dont le symbole est passé en argument, et faux sinon.

oBoolean IsInstanceOf(UserClassId) const
Renvoie vrai si le récepteur du message est une instance de la classe dont le symbole est passé en argument ou d'une de ses classes descendantes, et faux sinon.

ovoid SetOutputFile(OutputFile* pF)
Service normalement utilisé dans le constructeur d'une classe. Détermine le fichier (plus exactement l'instance de OutputFile dans lequel seront écrits les informations demandées dans les spécifications de sortie attachées à la classe en question.

oOutputFile* GetOutputFile() const
Renvoie le fichier déterminé par l'utilisation du service ci-dessus.

o Opérations sur la structure de l'entité

ovoid SetSuperEntity(BasicEntity*)
Affecte l'entité passée en premier argument comme super-entité du récepteur. Lève l'exception SuperEntityAlreadyEquippedWithClass.

ovoid SetComponentTab(pEntityTab)
Etablit que la liste des composants du récepteur est le tableau donné en argument. La liste ancienne est remplacée le cas échéant.

ovoid AddComponent(BasicEntity*)
Ajoute l'entité à la liste des composants du récepteur du message, s'il n'y est pas déjà. Le composant doit être d'une des classes déclarées par AddComponentClassId ou d'une de leurs classes descendantes.

ovoid RemoveComponent(BasicEntity*)
Retire l'entité de la liste des composants du récepteur du message, s'il y est déjà. Le composant doit être d'une des classes déclarées par AddComponentClassId ou d'une de leurs classes descendantes.

ovoid ReplaceComponent(BasicEntity* pE)
Dans la liste des composants du récepteur du message, remplace par l'entité pE le composant du même type que pE s'il y est déjà, et ajoute simplement pE sinon. Le composant doit être d'une des classes déclarées par AddComponentClassId ou d'une de leurs classes descendantes.

ovoid AddSuperSet(BasicEntity*)
Ajoute l'entité à la liste des ensembles dont le récepteur est élément, s'il n'y est pas déjà. Lève l'exception BadSuperSetClass.

ovoid ForceSuperSet(BasicEntity*)
Seulement appelé par AddElement. Force l'ajoute de l'entité à la liste des ensembles dont le récepteur est élément. Lève l'exception BadSuperSetClass.

oBoolean RemoveSuperSet(BasicEntity*)
Enlève l'entité de la liste des sur-ensembles du récepteur. Renvoie TRUE si la suppression a bien eu lieu, c'est-à-dire si le sur-ensemble était dans la liste.

oBasicEntity* AddElement(BasicEntity*)
Ajoute l'entité à la liste des éléments du récepteur, s'il n'y est pas déjà. Le démon éventuellement attaché à l'entité sera déclenché. Lève l'exception BadSubEntityClass. Renvoie l'élément si l'ajout a échoué ou si l'élément est NULL.

oBasicEntity* AddElementNoCheckIfNew(BasicEntity*)
Ajoute l'entité à la liste des éléments du récepteur, sans tester s'il y est déjà. Le démon éventuellement attaché à l'entité sera déclenché. Lève l'exception BadSubEntityClass. Renvoie l'élément si l'ajout a échoué ou si l'élément est NULL.

oBasicEntity* AddElement(BasicEntity*, Boolean triggerDeamon)
Ajoute l'entité à la liste des éléments du récepteur, s'il n'y est pas déjà. Lève l'exception BadSubEntityClass. Le démon éventuellement attaché à l'entité ne sera déclenché que si le second argument est TRUE. Renvoie l'élément si l'ajout a échoué ou si l'élément est NULL.

oBasicEntity* AddElements(pEntityTab)
Appelle AddElement(élément) pour chaque élément de l'argument. Renvoie le pointeur NULL si tous les ajouts ont réussi, ou bien le pointeur sur le premier élément dont l'ajout a échoué.

oBasicEntity* AddElements(pEntityTab, Boolean triggerDeamon)
Appelle AddElement(élément, leBooleen) pour chaque élément du premier argument. Renvoie le pointeur NULL si tous les ajouts ont réussi, ou bien le pointeur sur le premier élément dont l'ajout a échoué.

ovoid AddElementsIfNew(pEntityTab)
Appelle AddElement(élément) pour chaque élément de l'argument. Si l'ajout d'un élément a échoué, ou poursuit l'ajout des suivants.

ovoid AddElementsIfNew(pEntityTab, Boolean triggerDeamon)
Appelle AddElement(élément, leBooleen) pour chaque élément du premier argument. Si l'ajout d'un élément a échoué, ou poursuit l'ajout des suivants.

oBasicEntity* InsertElement(int index, BasicEntity*)
Insère l'entité dans la liste des éléments du récepteur, à la position indiquée par le premier argument. Avec un indexégal à 0, l'entité devient le premier élément. Le démon éventuellement attaché à l'entité sera déclenché. Lève l'exception BadSubEntityClass. Renvoie l'élément si l'insertion a échoué ou si l'élément est NULL.

oBasicEntity* RemoveElement(BasicEntity*)
Retire l'entité argument de la liste des éléments du récepteur. Le démon éventuellement attaché à l'entité sera déclenché immédiatement avant le retrait de l'élément. Renvoie le pointeur NULL si l'élément est NULL ou s'il était dans la liste et a été retiré, et le pointeur sur l'entité en argument sinon.

oBasicEntity* RemoveElement(BasicEntity*, Boolean triggerDeamon)
Retire l'entité argument de la liste des éléments du récepteur. Le démon éventuellement attaché à l'entité ne sera déclenché que si le second argument est TRUE. Même valeur retournée que ci-dessus.

oBasicEntity* RemoveElement(int k)
Retire l'entité de rang k de la liste des éléments du récepteur. Le démon éventuellement attaché à l'entité sera déclenché immédiatement avant le retrait de l'élément. Renvoie le pointeur NULL dans tous les cas.

oBasicEntity* RemoveElement(int k, Boolean triggerDeamon)
Retire l'entité de rang k de la liste des éléments du récepteur. Le démon éventuellement attaché à l'entité ne sera déclenché que si le second argument est TRUE. Même valeur retournée que ci-dessus.

oBasicEntity* RemoveElements()
Vide la liste des éléments du récepteur. Renvoie le pointeur NULL si tous les retraits ont réussi, ou bien le pointeur sur le premier élément dont le ratrait a échoué.

oBoolean ReplaceElement(BasicEntity* pE, pEntityTab)
Dans la liste des éléments du récepteur du message, remplace l'entité pE par les entités du tableau passé en second argument. Renvoie TRUE si le remplacement a bien eu lieu.

oBoolean IsFree() const
Renvoie vrai si et seulement si l'entité n'est élément ou composant d'aucune autre.

o Accès aux moniteurs (démons)
Il s'agit ici des démons sur la structure de l'entité et non des démons sur les descripteurs, puisqu'une instance de la présente classe peut ne pas posséder de descripteurs. On ne peut manipuler des démons sur les descripteurs que si l'entité hérite de la classe de base DescriptedEntity.

oStructureMonitor* GetMonitor() const
Renvoie le démon attaché à cette entité.

ovoid SetMonitor(StructureMonitor*)
Attache à l'entité le démon passé en argument. Utilisé exclusivement par la méthode AttachToEntity de StructureMonitor.

o Accès à la simulation
Une simulation est une procédure qui pointe obligatoirement sur et une seule une entité, dite l'entité simulée. On peut établir la relation inverse, c'est-à-dire pointer, à partir d'une entité simulée (au sens ci-dessus), vers la simulation qui pointe ou pointera sur elle. Par 'simulation', on entend instance de la classe Simulation. Chacune des deux déclarations est à réaliser explicitement : l'une n'est pas prise en charge par l'autre.

ovoid SetSimulation(Simulation* pSim)
Attache une instance de Simulation à l'entité. Cette entité est la seule qui est ou qui sera l'entité simulé de l'instance de Simulation passée en argument.

oSimulation* GetSimulation() const
Renvoie l'instance de Simulation attachée à l'entité. Renvoie donc NULL si cette entité n'est pas l'entité simulé de la simulation passée en argument.

oBasicEntity* GetSimulatedContainerEntity() const
Renvoie l'entité simulée dont 'this' est composant ou élément à profondeur quelconque, ou NULL si this est une instance libre ou si l'entité simulée n'a pas encore été désignée ou aucune simulation n'a encore été associée à l'entité simulée.


Classes descendantes directes :
DescriptedEntity

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