Ignore:
Timestamp:
07/20/10 16:20:13 (14 years ago)
Author:
hozdoba
Message:

Quelques modifications supplémentaires apportées aux dates et calendriers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/dev_rv/src/XMLIO/context.hpp

    r115 r119  
    99      public: 
    1010 
    11          Context(void) : ObjectTemplate<Context>(), fieldDef(NULL), fileDef(NULL), axisDef(NULL), gridDef(NULL) 
     11         Context(void) : ObjectTemplate<Context>(), ccalendar(NULL), 
     12            fieldDef(NULL), fileDef(NULL), axisDef(NULL), gridDef(NULL) 
    1213         {/* Ne rien faire de plus */} 
    13          Context(const string& _id) : ObjectTemplate<Context>(_id), fieldDef(NULL), fileDef(NULL), axisDef(NULL), gridDef(NULL) 
     14 
     15         Context(const string& _id) : ObjectTemplate<Context>(_id), ccalendar(NULL), 
     16            fieldDef(NULL), fileDef(NULL), axisDef(NULL), gridDef(NULL) 
    1417         {/* Ne rien faire de plus */} 
    1518 
     
    9295                  { WARNING("Le noeud de définition possÚde un identifiant, ce dernier ne sera pas pris en compte lors du traitement !"); } 
    9396 
    94                   if (name.compare(FieldDefinition::GetDefName()) == 0) // Parsing définition des champs. 
     97                  if (name.compare(FieldDefinition::GetDefName()) == 0) // Parsing pour la définition des champs. 
    9598                  { fieldDef = CreateInstanceAndParse<FieldDefinition>(_node, FieldDefinition::GetDefName().c_str()); continue; } 
    9699 
    97                   if (name.compare(FileDefinition::GetDefName()) == 0) // Parsing définition des fichiers. 
     100                  if (name.compare(FileDefinition::GetDefName()) == 0) // Parsing pour la définition des fichiers. 
    98101                  { fileDef  = CreateInstanceAndParse<FileDefinition >(_node, FileDefinition ::GetDefName().c_str()); continue; } 
    99102 
     
    136139         } 
    137140 
    138          FieldDefinition* getFieldDefinition(void) { return (this->fieldDef); } 
    139          FileDefinition * getFileDefinition(void)  { return (this->fileDef ); } 
    140          AxisDefinition * getAxisDefinition(void)  { return (this->axisDef ); } 
    141          GridDefinition * getGridDefinition(void)  { return (this->gridDef ); } 
     141         FieldDefinition* getFieldDefinition(void) const { return (this->fieldDef); } 
     142         FileDefinition * getFileDefinition(void)  const { return (this->fileDef ); } 
     143         AxisDefinition * getAxisDefinition(void)  const { return (this->axisDef ); } 
     144         GridDefinition * getGridDefinition(void)  const { return (this->gridDef ); } 
     145 
     146         AbstractCalendar * getCalendar(void) const { return (this->ccalendar ); } 
     147         AbstractCalendar * setCalendar(const string& _calName, const string& dateStr) 
     148         { 
     149            if (_calName.compare("D360")      == 0) 
     150               return (ccalendar = new D360Calendar(dateStr)); 
     151            if (_calName.compare("AllLeap")   == 0) 
     152               return (ccalendar = new AllLeapCalendar(dateStr)); 
     153            if (_calName.compare("NoLeap")    == 0) 
     154               return (ccalendar = new NoLeapCalendar(dateStr)); 
     155            if (_calName.compare("Julian")    == 0) 
     156               return (ccalendar = new JulianCalendar(dateStr)); 
     157            if (_calName.compare("Gregorian") == 0) 
     158               return (ccalendar = new GregorianCalendar(dateStr)); 
     159 
     160            WARNING("L'identifiant "+_calName+" est inconnu, le calendrier grégorien sera choisi par défault pour le contexte "+getId()); 
     161 
     162            return (ccalendar = new GregorianCalendar(dateStr)); 
     163         } 
    142164 
    143165         ~Context() 
    144166         { 
     167            // Désallocation dynamique de mémoire pour chacun des groupes de définition si nécessaire. 
    145168            if(fieldDef != NULL) delete fieldDef; 
    146169            if(fileDef  != NULL) delete fileDef; 
    147170            if(axisDef  != NULL) delete axisDef; 
    148171            if(gridDef  != NULL) delete gridDef; 
     172            // Désallocation dynamique de mémoire pour le calendrier associé au contexte courant si nécessaire. 
     173            if(ccalendar !=  NULL) delete ccalendar; 
    149174         } 
    150175 
     176      private: 
    151177 
    152       private: 
     178         AbstractCalendar* ccalendar; 
    153179 
    154180         FieldDefinition*  fieldDef; 
     
    157183         GridDefinition*   gridDef; 
    158184 
    159  
    160185   }; //class Context 
    161186}// namespace XMLIOSERVER 
Note: See TracChangeset for help on using the changeset viewer.