- Timestamp:
- 10/01/10 11:32:41 (14 years ago)
- Location:
- XMLIO_V2/dev/dev_rv/src/XMLIO
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/dev_rv/src/XMLIO/NetCDF4_data_output.hpp
r123 r124 150 150 for ( it = enabledFields.begin() ; it != enabledFields.end(); it++ ) 151 151 { 152 constCField* field = (*it);152 CField* field = (*it); 153 153 const CField* bfield = (*it)->getBaseObject(); 154 154 155 155 lonlat = !field->getGrid()->_hasAxis(); 156 156 157 if (field->operation.hasValue()) 157 if (string(field->operation).compare("once") == 0) wtime = false; 158 { // Si une opération sur le champ est définie ... 159 if (field->operation.getId().compare("once") == 0) 160 { 161 wtime = false; 162 field->freq_op.setValue(NoneDu); 163 } 164 } 165 else 166 { // Si aucune opération sur le champ n'est définie ... 167 FieldOperation ope("inst"); 168 field->operation.setValue(ope); 169 } 170 171 // Si la fréquence d'opération n'est pas définie, on l'initialise à 0s. 172 // Une fréquence à 0s signifie que l'opération se fera à chaque écriture de données depuis la simulation. 173 if (!field->freq_op.hasValue()) 174 field->freq_op.setValue(NoneDu); 175 ((FieldOperation)field->operation).setFreqOp(Duration(field->freq_op)); 176 158 177 159 178 tvar = ncFloat; -
XMLIO_V2/dev/dev_rv/src/XMLIO/NetCDF4_data_treatment.hpp
r120 r124 8 8 public : 9 9 10 NetCDF4DataTreatment(Context* const _ctxt ) : AbstractDataTreatment(_ctxt)10 NetCDF4DataTreatment(Context* const _ctxt = Context::GetCurrentContext()) : AbstractDataTreatment(_ctxt, *_ctxt->getCalendar()) 11 11 { /* Ne rien faire de plus */ } 12 13 virtual void createDataOutput(void) 14 { 15 for (unsigned int i = 0; i < enabledFiles.size(); i++) 16 { 17 // Initialisation des instances de sortie de données. 18 enabledFiles[i]->initializeDataOutput(new NetCDF4DataOutput(enabledFiles[i])); 19 // Ouverture des fichiers et création des entêtes. 20 enabledFiles[i]->getDataOutput()->createFileAndHeader(); 21 } 22 } 12 23 13 24 virtual ~NetCDF4DataTreatment() -
XMLIO_V2/dev/dev_rv/src/XMLIO/abstract_calendar.hpp
r123 r124 20 20 friend std::ostream& operator<<(std::ostream& out, AbstractCalendar& c) 21 21 { out << "[type: " << c.getId() << ", start: " << c.getInitDate() << ", current: " << c.getCurrentDate() << "]"; return (out); } 22 23 const Date& getInitDate(void) const { return(initDate); } 24 Date& getCurrentDate(void) { return(currentDate); } 25 26 void setTempo(const Duration& dr) { tempo = dr; } 27 Duration getTempo(void) const { return (tempo); } 28 29 Date& update(void); 22 30 23 31 virtual int getYearTotalLength(const Date& d) const { return (365 * 86400); } // Retourne la durée d'une année en seconde. … … 49 57 { string value = getMonthName(_mi); value.resize(3); return (value); } 50 58 51 const Date& getInitDate(void) const { return(initDate); }52 Date& getCurrentDate(void) { return(currentDate); }53 54 59 virtual ~AbstractCalendar() 55 60 {/* Ne rien faire de plus */} … … 57 62 protected : 58 63 59 AbstractCalendar() : AbstractObject(), initDate(*this), currentDate(initDate) 64 AbstractCalendar() 65 : AbstractObject(), initDate(*this), currentDate(initDate), tempo(Hour) 60 66 {/* Ne rien faire de plus */} 61 67 62 68 AbstractCalendar(const string& _id, int yr = 0, int mth = 1, int d = 1, int hr = 0, int min = 0 , int sec = 0) 63 : AbstractObject(_id), initDate(*this, yr, mth, d, hr, min, sec), currentDate(initDate) 69 : AbstractObject(_id), initDate(*this, yr, mth, d, hr, min, sec), currentDate(initDate), tempo(Hour) 64 70 {/* Ne rien faire de plus */} 65 71 66 72 AbstractCalendar(const string& _id, const string& dateStr) 67 : AbstractObject(_id), initDate(Date::FromString(dateStr, *this)), currentDate(initDate) 73 : AbstractObject(_id), initDate(Date::FromString(dateStr, *this)), currentDate(initDate), tempo(Hour) 68 74 {/* Ne rien faire de plus */} 69 75 … … 72 78 const Date initDate; 73 79 Date currentDate; 80 Duration tempo; 74 81 75 82 }; // class AbstractCalendar -
XMLIO_V2/dev/dev_rv/src/XMLIO/abstract_data_treatment.hpp
r123 r124 11 11 { return (currentContext); } 12 12 13 const std::vector<CFile*> getEnabledFiles(void) const13 const std::vector<CFile*>& getEnabledFiles(void) const 14 14 { return (enabledFiles); } 15 15 … … 22 22 void printEnabledFilesId(std::ostream& out = std::clog) const 23 23 { 24 out << "Liste des fichiers à sortir dans le contexte analysé nommé \"" << currentContext->getId() << "\"" << std::endl; 25 std::vector<std::string> __vect; getEnabledFilesId(__vect); 24 out << "Liste des fichiers à sortir dans le contexte analysé nommé \"" 25 << currentContext->getId() << "\"" << std::endl; 26 27 std::vector<std::string> __vect; 28 this->getEnabledFilesId(__vect); 29 26 30 for (unsigned int i = 0; i < __vect.size(); i++) 27 31 out << __vect[i] << "|"; 28 32 out << "fin" << std::endl; 29 33 } 34 35 template <class T> 36 bool writeData(const std::string& id, const T& arr) 37 { 38 const CField* const field_entry = CField::GetObject(id); 39 const vector<CField*>& vectRef = field_entry->getVectRefObject(); 40 41 std::vector<CField*>::const_iterator it; 42 for (it = vectRef.begin(); it != vectRef.end(); it++ ) 43 { 44 if ((*it)->isStorable(currentContext->getCalendar()->getCurrentDate())) 45 { // Stockage des données dans l'instance CField si nécessaire. 46 Array<double, 1> data_uni; 47 (*it)->getGrid()->storeField(arr, data_uni); 48 (*it)->storeData(data_uni, currentContext->getCalendar()->getCurrentDate()); 49 } 50 } 51 52 return (false); 53 } 54 virtual void createDataOutput(void) = 0; 30 55 31 56 virtual ~AbstractDataTreatment() … … 34 59 protected : 35 60 36 AbstractDataTreatment(Context* const _ctxt ) : currentContext(_ctxt), enabledFiles()61 AbstractDataTreatment(Context* const _ctxt, const AbstractCalendar& cal) : enabledFiles(), currentContext(_ctxt) 37 62 { 38 63 //std::cout << "(Message temporaire) Résolution des héritages ..." << std::endl; … … 46 71 // Recherche des champs à sortir (enable à true + niveau de sortie correct) pour chaque fichier précédemment listé. 47 72 //std::cout << "(Message temporaire) Recherche des champs à sortir ..." << std::endl; 48 findAllEnabledFields( );73 findAllEnabledFields(cal.getInitDate()); 49 74 50 75 // Résolution des références de grilles pour chacun des champs. … … 55 80 } 56 81 82 std::vector<CFile*> enabledFiles; // Liste des fichiers à créer dans un context donné. 83 57 84 private : 58 85 59 void findAllEnabledFields( void)// <- ajouter attribut par défault ici.86 void findAllEnabledFields(const Date& iniDate)// <- ajouter attribut par défault ici. 60 87 { 61 88 for (unsigned int i = 0; i < enabledFiles.size(); i++) 62 enabledFiles[i]->findEnabledFields( );89 enabledFiles[i]->findEnabledFields(iniDate); 63 90 } 64 91 … … 82 109 { 83 110 const std::vector<CFile*>& allFiles = CFile::GetCurrentListObject().getVector(); 111 84 112 for (unsigned int i = 0; i < allFiles.size(); i++) 85 113 if (allFiles[i]->enabled.hasValue()) // Si l'attribut 'enabled' est défini. 86 114 if ((bool)allFiles[i]->enabled) // Si l'attribut 'enabled' est fixé à vrai. 87 115 enabledFiles.push_back ( allFiles[i] ); 116 88 117 if (enabledFiles.size() == 0) 89 118 WARNING("Aucun fichier ne va être sorti dans le contexte nommé \"" + currentContext->getId() + "\" !"); … … 91 120 92 121 Context* const currentContext; 93 std::vector<CFile*> enabledFiles; // Liste des fichiers à créer dans un context donné.94 122 95 123 }; //class AbstractDataTreatment -
XMLIO_V2/dev/dev_rv/src/XMLIO/attribut_registrar.hpp
r120 r124 24 24 friend ostream& operator<< (ostream& out, const AttributRegistrar& c) 25 25 { 26 for(unsigned int i = 0; i < c.attrList.getVectorSize(); i++) out << *c.attrList.getVector()[i]; 26 for(unsigned int i = 0; i < c.attrList.getVectorSize(); i++) 27 if (c.attrList.getVector()[i]->hasValue()) 28 out << *c.attrList.getVector()[i]; 27 29 return (out); 28 30 } -
XMLIO_V2/dev/dev_rv/src/XMLIO/c_interface.cpp
r123 r124 23 23 try 24 24 { 25 Array<double, 3> arr( 3, 3, 3) ; // Les données.25 Array<double, 3> arr(100, 100, 20) ; // Les données(les arguments en fonction des dimensions). 26 26 string file("/local/XMLIOSERVER_DEV/dev_rv/test/iodef_simple_test.xml"); // Le fichier de définition. 27 27 ifstream istr( file.c_str() , ifstream::in ); … … 38 38 std::cout << " * ----------- Début du traitement ----------- * " << std::endl; 39 39 40 //Affichage de la date initiale (pour vérification). 41 std::cout << *Context::GetObject("context1")->getCalendar() << std::endl; 40 { 41 // On crée une instance de traitement de données dans le format NetCDF4. 42 AbstractDataTreatment *dtreat = new NetCDF4DataTreatment(); 43 dtreat->createDataOutput(); 42 44 43 // On crée une instance de traitement de données dans le format NetCDF4. 44 AbstractDataTreatment *dtreat = new NetCDF4DataTreatment(Context::GetObject("context1")); 45 // Récupération du calendrier assossié au context courant et initialisation des delais d'écriture. 46 AbstractCalendar* calendar = dtreat->getCurrentContext()->getCalendar(); 47 calendar->setTempo(1*Hour); 45 48 46 NetCDF4DataOutput dop(CFile::GetObject("fichier1"));47 dop.createFileAndHeader();49 //Affichage de la date initiale (pour vérification). 50 std::cout << *calendar << std::endl; 48 51 49 for(int tcourant = 0, tfinal = 9; tcourant <= tfinal; tcourant++) 50 { 51 // Mise à jour de la date. 52 for(int tcourant = 0, tfinal = 9; tcourant <= tfinal; tcourant++) 53 { /***************************** BOUCLE DE CALCUL *****************************/ 52 54 55 // Mise à jour de la date. 56 calendar->update(); 53 57 54 // Mise à jour des données. 55 updateDataTest<Array<double, 3>::iterator>(arr.begin(), arr.end()); 58 std::cout << "> Itération de calcul " << tcourant << ", " << *calendar << std::endl; 56 59 57 // Ecrituredes données.58 // dtreat->writeData("Premier_champ", arr);60 // Mise à jour des données. 61 updateDataTest<Array<double, 3>::iterator>(arr.begin(), arr.end()); 59 62 63 // Ecriture des données. 64 dtreat->writeData<Array<double, 3> >("champ1", arr); 65 66 } 67 68 // On écrit l'arborescence résultante du traitement sur la sortie de log. 69 Context::ShowTree(std::clog); 70 71 delete dtreat; 60 72 } 61 62 // On écrit l'arborescence résultante du traitement sur la sortie de log.63 //Context::ShowTree(std::clog);64 65 delete dtreat;66 73 67 74 } -
XMLIO_V2/dev/dev_rv/src/XMLIO/calendar_utils.hpp
r119 r124 190 190 bool operator!=(const Date& dt0, const Date& dt1) { return !(dt1 == dt0); } 191 191 bool operator> (const Date& dt0, const Date& dt1) { return (dt1 < dt0); } 192 bool operator>=(const Date& dt0, const Date& dt1) { return ((dt1 > dt0) || (dt1 == dt0)); } 193 bool operator<=(const Date& dt0, const Date& dt1) { return ((dt1 < dt0) || (dt1 == dt0)); } 192 bool operator>=(const Date& dt0, const Date& dt1) { return ((dt0 > dt1) || (dt1 == dt0)); } 193 bool operator<=(const Date& dt0, const Date& dt1) { return ((dt0 < dt1) || (dt1 == dt0)); } 194 195 Date& AbstractCalendar::update(void) 196 { return (getCurrentDate() = getCurrentDate() + tempo); } 194 197 195 198 } // namespace XMLIOSERVER -
XMLIO_V2/dev/dev_rv/src/XMLIO/context.hpp
r123 r124 52 52 } 53 53 } 54 55 static Context* GetCurrentContext(void) 56 { return (Context::GetObject(Context::GetCurrentContextId())); } 54 57 55 58 static void SetCurrentContext(const string& id) … … 150 153 DomainDefinition * getDomainDefinition(void) const { return (this->domainDef); } 151 154 152 void updateCurrentDate(const Duration* const dr = NULL)153 {154 static Duration dur = Hour;155 if (dr != NULL) dur = *dr;156 Date newCurrentDate = ccalendar->getCurrentDate() + dur;157 ccalendar->getCurrentDate() = newCurrentDate;158 }159 160 155 AbstractCalendar * getCalendar(void) const { return (this->ccalendar ); } 161 156 AbstractCalendar * setCalendar(const string& _calName, const string& _dateStr) -
XMLIO_V2/dev/dev_rv/src/XMLIO/date.hpp
r123 r124 60 60 int getSecond(void) const { return (second); } 61 61 62 void setYear (int newyear) { year = newyear; } 62 63 void setMonth (int newmonth) { month = newmonth; } 63 64 … … 69 70 } 70 71 71 void setYear (int newyear) { year = newyear; } 72 72 73 73 74 const AbstractCalendar& getRelCalendar(void) const { return (relCalendar); } -
XMLIO_V2/dev/dev_rv/src/XMLIO/field.hpp
r123 r124 8 8 { 9 9 class CGrid; // CGRID = CDOMAINE + CAXIS 10 class CFile; 10 11 11 12 class CField : public ObjectTemplate<CField>, public FieldAttribut … … 13 14 public: 14 15 15 CField(void) : ObjectTemplate<CField>(), FieldAttribut(), grid(NULL)16 CField(void) : ObjectTemplate<CField>(), FieldAttribut(), lastStored(NULL), grid(NULL), file(NULL) 16 17 {/* Ne rien faire de plus */} 17 CField(const string& _id) : ObjectTemplate<CField>(_id), FieldAttribut(), grid(NULL), foper(NULL)18 CField(const string& _id) : ObjectTemplate<CField>(_id), FieldAttribut(), lastStored(NULL), grid(NULL), file(NULL) 18 19 {/* Ne rien faire de plus */} 19 20 20 21 static string GetName(void) { return ("field"); } 21 22 22 inline void SolveGridRef(void) ;23 inline void solveGridRef(void) ; 23 24 24 25 const CGrid* getGrid(void) const { return (grid); } 25 26 const Array<double, 1>& getData(void) const { return (data); } 26 const FieldOperation* getFieldOperation(void) const { return (foper); } 27 28 void initLastStoredDate(const Date& _newlastStored) 29 { if(lastStored == NULL) lastStored = new Date(_newlastStored); }; 30 31 bool isStorable(const Date& currDate) 32 { 33 if (lastStored == NULL) return (false); 34 if (freq_op.hasValue()) 35 return (currDate >= (*lastStored + (Duration)freq_op)); 36 return (true); 37 } 38 39 void storeData(const Array<double, 1> & arr, const Date& currDate) 40 { 41 *lastStored = currDate; 42 data.resize(shape(arr.size())) ; 43 data = arr; 44 } 45 46 const CFile* getRelFile(void) const { return (file); } 47 void setRelFile(CFile* _file) { file = _file; } 27 48 28 49 virtual CField* getReference(void) const … … 36 57 37 58 virtual ~CField(void) 38 { /* Ne rien faire de plus */}59 { if(lastStored != NULL) delete lastStored; } 39 60 40 61 private : 41 62 63 Date* lastStored; 64 42 65 CGrid* grid ; 43 FieldOperation* foper; 44 Array<double, 1> data; 66 CFile* file; 67 68 Array<double, 1> data; 45 69 46 70 }; // class CField -
XMLIO_V2/dev/dev_rv/src/XMLIO/field_attribut.hpp
r120 r124 11 11 DECLARE_ATTR(description, string) ; 12 12 DECLARE_ATTR(unit, string) ; 13 DECLARE_ATTR(operation, string);13 DECLARE_ATTR(operation, FieldOperation); 14 14 15 DECLARE_ATTR(freq_op, int) ;15 DECLARE_ATTR(freq_op, Duration) ; 16 16 DECLARE_ATTR(level, int) ; 17 17 DECLARE_ATTR(prec, int) ; -
XMLIO_V2/dev/dev_rv/src/XMLIO/field_gridrefsolver.hpp
r122 r124 4 4 namespace XMLIOSERVER 5 5 { 6 void CField:: SolveGridRef(void)6 void CField::solveGridRef(void) 7 7 { 8 8 CDomain* domain = NULL; -
XMLIO_V2/dev/dev_rv/src/XMLIO/field_operation.hpp
r123 r124 9 9 public : 10 10 11 FieldOperation() : AbstractObject("Inst(X)") 11 FieldOperation(const string& _id = string("inst"), const Duration& _dr = Hour) 12 : AbstractObject(_id), freqOp(_dr) 12 13 { /* Ne rien faire de plus */ } 13 14 14 FieldOperation(const string& _id) : AbstractObject(_id) 15 { /* Ne rien faire de plus */ } 15 friend std::ostream& operator<<(std::ostream& out, const FieldOperation& fo) 16 { out << fo.getId(); return (out); } 17 18 friend std::istream& operator>>(std::istream& in, FieldOperation& fo) 19 { string __id; in >> __id; fo.setId(__id); return (in); } 20 21 const Duration& getFreqOp(void) const { return (freqOp); } 22 void setFreqOp(const Duration& _dr) { freqOp = _dr; } 23 24 //void getOutputField(const Array<double, 1>& inField, Array<double, 1>& outField) const 25 26 //void getStoreField(const Array<double, 1>& inField, Array<double, 1>& outField) const 16 27 17 28 virtual ~FieldOperation() … … 23 34 private : 24 35 36 Duration freqOp; 37 25 38 26 39 }; // class FieldOperation -
XMLIO_V2/dev/dev_rv/src/XMLIO/file.hpp
r122 r124 36 36 } 37 37 38 constAbstractDataOutput* getDataOutput(void) const { return (output); }38 AbstractDataOutput* getDataOutput(void) const { return (output); } 39 39 void initializeDataOutput(AbstractDataOutput* _output) 40 40 { … … 96 96 } 97 97 98 FieldGroup* getVirtualFieldGroup(void) { return (vfieldGroup); }98 FieldGroup* getVirtualFieldGroup(void) const { return (vfieldGroup); } 99 99 100 void findEnabledFields( int default_outputlevel = 5, int default_level = 1, bool default_enabled = true )100 void findEnabledFields(const Date& inidate, int default_outputlevel = 5, int default_level = 1, bool default_enabled = true ) 101 101 { 102 102 const int _outputlevel = (output_level.hasValue()) ? (int)output_level : default_outputlevel; … … 128 128 { enabledFields.erase(it); continue; } 129 129 } 130 131 // Le champ est finalement actif, on ajoute la référence au champ de base. 132 (*it)->getBaseObject()->addRefObject(*it); 133 (*it)->setRelFile(this); 134 (*it)->initLastStoredDate(inidate); 130 135 } 131 136 } … … 134 139 { 135 140 for (unsigned int i = 0; i < enabledFields.size(); i++) 136 enabledFields[i]-> SolveGridRef();141 enabledFields[i]->solveGridRef(); 137 142 } 138 143 … … 147 152 FieldGroup* vfieldGroup; // FieldGroup "virtuel" 148 153 std::vector<CField*> enabledFields; // Liste des champs à sortie dans le fichier courant. 154 149 155 AbstractDataOutput* output; // Gestion de la sortie des données. 150 156 -
XMLIO_V2/dev/dev_rv/src/XMLIO/grid.hpp
r123 r124 30 30 bool _hasAxis(void) const { return (hasAxis); } 31 31 32 inline void storeField(const Array<double, 1>& field, Array<double, 1>& stored) ;33 inline void storeField(const Array<double, 2>& field, Array<double, 1>& stored) ;34 inline void storeField(const Array<double, 3>& field, Array<double, 1>& stored) ;35 inline void storeField(const double* const data, Array<double, 1>& stored) ;36 37 inline void outputField(const Array<double,1>& stored, Array<double, 2>& outField) ;38 inline void outputField(const Array<double,1>& stored, Array<double, 3>& outField) ;32 inline void storeField(const Array<double, 1>& field, Array<double, 1>& stored) const; 33 inline void storeField(const Array<double, 2>& field, Array<double, 1>& stored) const; 34 inline void storeField(const Array<double, 3>& field, Array<double, 1>& stored) const; 35 inline void storeField(const double* const data, Array<double, 1>& stored) const; 36 37 inline void outputField(const Array<double,1>& stored, Array<double, 2>& outField) const; 38 inline void outputField(const Array<double,1>& stored, Array<double, 3>& outField) const; 39 39 40 40 inline static CGrid* CreateObject(const CDomain* const a_domain, const CAxis* const a_axis); … … 207 207 } 208 208 209 void CGrid::storeField(const Array<double, 1>& field, Array<double, 1>& stored) 209 void CGrid::storeField(const Array<double, 1>& field, Array<double, 1>& stored) const 210 210 { 211 211 storeField(field.dataFirst(), stored) ; … … 213 213 } 214 214 215 void CGrid::storeField(const Array<double, 2>& field, Array<double, 1>& stored) 215 void CGrid::storeField(const Array<double, 2>& field, Array<double, 1>& stored) const 216 216 { 217 217 storeField(field.dataFirst(), stored) ; … … 219 219 } 220 220 221 void CGrid::storeField(const Array<double, 3>& field, Array<double, 1>& stored) 221 void CGrid::storeField(const Array<double, 3>& field, Array<double, 1>& stored) const 222 222 { 223 223 storeField(field.dataFirst(), stored) ; … … 225 225 } 226 226 227 void CGrid::storeField(const double* const data, Array<double, 1>& stored) 227 void CGrid::storeField(const double* const data, Array<double, 1>& stored) const 228 228 { 229 229 int size = storeIndex.size() ; … … 237 237 } 238 238 239 void CGrid::outputField(const Array<double, 1>& stored, Array<double, 2>& outField) 239 void CGrid::outputField(const Array<double, 1>& stored, Array<double, 2>& outField) const 240 240 { 241 241 for(int n = 0; n < storeIndex.size(); n++) … … 243 243 } 244 244 245 void CGrid::outputField(const Array<double, 1>& stored, Array<double, 3>& outField) 245 void CGrid::outputField(const Array<double, 1>& stored, Array<double, 3>& outField) const 246 246 { 247 247 for(int n = 0; n < storeIndex.size(); n++) -
XMLIO_V2/dev/dev_rv/src/XMLIO/object_template.hpp
r122 r124 43 43 string getName(void) const {return (T::GetName()); } 44 44 45 constT* getBaseObject(void) const { return (baseObject); }45 T* getBaseObject(void) const { return (baseObject); } 46 46 47 47 virtual T* getReference(void) const { return (NULL); } 48 49 const vector<T*>& getVectRefObject(void) const { return (refObject); } 50 51 bool hasRefObject(void) { return (!refObject.empty()); } 52 53 const T* addRefObject(T* obj) 54 { refObject.push_back (obj); return (obj); } 48 55 49 56 virtual bool hasChild(void) const { return (false); } … … 78 85 // Rien à faire. 79 86 } 87 88 public : /* static */ 80 89 81 90 static T* CreateObject(const string& _id) throw (XMLIOUndefinedValueException) … … 119 128 protected : 120 129 121 ObjectTemplate(void) : AbstractObject(), baseObject(NULL) 130 ObjectTemplate(void) : AbstractObject(), baseObject(NULL), refObject() 122 131 {/* Ne rien faire de plus */} 123 ObjectTemplate(const string& _id) : AbstractObject(_id), baseObject(NULL) 132 ObjectTemplate(const string& _id) : AbstractObject(_id), baseObject(NULL), refObject() 124 133 {/* Ne rien faire de plus */} 125 134 … … 145 154 private : 146 155 T* baseObject; 156 vector<T*> refObject; 147 157 148 158 static string CurrContext; -
XMLIO_V2/dev/dev_rv/src/XMLIO/xmlio.hpp
r123 r124 7 7 #include <cmath> 8 8 9 10 // Conteneurs. 9 11 #include <vector> 10 12 #include <set> 11 13 14 //Flux. 12 15 #include <iostream> 13 16 #include <fstream> … … 54 57 #include "object_template.hpp" 55 58 59 // Traitement des opérations sur les champs 60 #include "field_operation.hpp" 61 56 62 // Gestion des attributs des objets. 57 63 #include "grid_attribut.hpp" … … 60 66 #include "field_attribut.hpp" 61 67 #include "file_attribut.hpp" 62 63 // Traitement des opérations sur les champs64 #include "field_operation.hpp"65 68 66 69 #include "group_template.hpp" … … 74 77 #include "file.hpp" 75 78 76 // Résolution des références aux grilles pour les champs.77 #include "field_gridrefsolver.hpp"78 79 79 //.... 80 80 #include "context.hpp" 81 81 #include "xml_parser.hpp" 82 82 83 // Résolution des références aux grilles pour les champs. 84 #include "field_gridrefsolver.hpp" 83 85 84 86 // Gestion de l'écriture des données NetCDF … … 89 91 #include "NetCDF4_data_treatment.hpp" 90 92 93 94 91 95 #endif // __XMLIO__
Note: See TracChangeset
for help on using the changeset viewer.