Les descripteurs prédéfinis

Quelques descripteurs, constants (C) et variables (V) sont prédéfinis dans DIESE.

Les deux premiers dans le tableau ci-dessous sont affectés par DIESE comme descripteur de la classe DescriptedEntity. Les sous-classes de DescriptedEntity dans les couches applicatives héritent donc de ces descripteurs.

Les autres sont des classes instantiables dans les couches logicielles applicatives :

MyEntity::MyEntity() {
  SetMetaClass(MY_ENTITY);
  AddInstanceToClass();
  ...
}
AgeAttribute::AgeAttribute() {  // déclaré sous-classe de IntConstantDescriptor
  ClassName   ("ageAttribute");
  ClassSymbol (AGE_ATTRIBUTE);
  ...
};
int main(...) {
  ...
  Entity* pE = new MyEntity();
  Descriptor pD = new AgeAttribute();  // classe de l'application (voir ci-dessus)
  AddConstantDescriptor(pD);
  pD->SetToDefaultValue(-9);
  pD = new TypeAttribute();            // classe prédéfinie
  AddConstantDescriptor(pD);
  //pD = new InstantAttribute();       // automatiquement hérité
  ...
}

type classe symbole de classe v. par défaut valeur
V int CurrentElementIndex CURRENT_ELEMENT_INDEX 0 0
C int InstantAttribute INSTANT_ATTRIBUTE
C int TypeAttribute TYPE_ATTRIBUTE
C int DescriptorIdAttribute DESCRIPTOR_ID_ATTRIBUTE -9 -9
C char* DescriptorNameAttribute DESCRIPTOR_NAME_ATTRIBUTE
C int EntityIdAttribute ENTITY_ID_ATTRIBUTE -9 -9
C char* EntityNameAttribute ENTITY_NAME_ATTRIBUTE
C pIntIntervalTab* TimeDomainAttribute TIME_DOMAIN_ATTRIBUTE
C pIntTab* AnonymousIntTabAttribute ANONYMOUS_INT_TAB__ATTRIBUTE
C pFloatTab* AnonymousFloatTabAttribute ANONYMOUS_FLOAT_TAB_ATTRIBUTE
V int AnonymousIntAttribute ANONYMOUS_INT_ATTRIBUTE
V float AnonymousFloatAttribute ANONYMOUS_FLOAT_ATTRIBUTE
V double AnonymousDoubleAttribute ANONYMOUS_DOUBLE_ATTRIBUTE
V char* AnonymousStringAttribute ANONYMOUS_STRING_ATTRIBUTE
V Entity* AnonymousEntityAttribute ANONYMOUS_ENTITY_ATTRIBUTE

Note : ne pas confondre le nom C++ de la classe et le "nom de classe" (de la classe). Par exemple, le "nom de classe" de la classe C++ TypeAttribute est "typeAttribute". C'est la valeur retournée par le service ClassName() et valué par le service ClassName(char*). De façon générale, le nom de classe est le nom C++ dans lequel on a passé la première lettre en minuscule.
Le symbole de classe est retournée par le service ClassSymbol() et valué par le service ClassSymbol(UserDescriptorId).

La sémantique proposée pour ces descripteurs, et l'utilisation possible des descripteurs "anonymes" (e.g. AnonymousIntAttribute), sont documentées à la page "Définition de types, variable globales et constantes symboliques".


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