Gestion de la hiérarchie des classes d'entités


o C_InstallMetaClasses
Fonction d'initialisation des informations sur les sous-classes de BasicEntity propres à CONTROL DIESE.
Pour comprendre le motif et le principe de l'installation de la hiérarchie des classes d'entités, lire la page équivalente dans la documentation de BASIC DIESE.

Ainsi, pour installer une hiérarchie de classes d'entités, l'utilisateur opére normalement de la façon suivante :

  1. Les classes du domaine. Un fichier UserEntity.h contient la déclaration des classes du domaine, avec pour le moins un constructeur sans argument, et avec spécification de l'héritage. Dans cet exemple, la classe A hérite de la classe B :

    class A : public Entity { public: A();};
    class B : public A { public: B();};
    

  2. Les métaclasses. Quelque part dans le code, mais normalement dans une fonction dédiée, couramment appelée App_InstallMetaClasses, on crée les instances de MetaClass associées à A et B ... :

    void App_InstallMetaClasses() {
      MetaClass* pMC;
      pMC = CreateMetaClass(ID_A, "a"); pMC->SetParentClassId(BD_ENTITY);
      pMC = CreateMetaClass(ID_B, "b"); pMC->SetParentClassId(ID_A);
    }
    
    ... où ID_A et ID_B (resp. "a" et "b") sont les symboles (resp. les noms) de classes choisis pour A et B.

    Cette fonction est invoquée au début du code de toute application (mais après la création d'une instance de Simulation et après l'invocation de D_InstallMetaClasses et de D_InstallMetaClasses, qui ont le même rôle pour les classes prédéfinies de BASIC DIESE et de CONTROL DIESE).

    int main(int argc, char argv[]) {
      ...
      pCurrentSim = new Simulation();
      ...
      D_InstallMetaClasses();
      C_InstallMetaClasses();
      App_InstallMetaClasses();
      SetHierarchy();
      ...
    }
    

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