#ifndef __XMLIO_CDataTreatment__ #define __XMLIO_CDataTreatment__ /// xmlioserver headers /// #include "xmlioserver_spl.hpp" #include "node_type.hpp" #include "mpi_manager.hpp" #include "data_output.hpp" namespace xmlioserver { namespace data { /// ////////////////////// Déclarations ////////////////////// /// class CDataTreatment { public : /// Construteurs /// CDataTreatment (boost::shared_ptr _ctxt = CObjectFactory::GetObject(CObjectFactory::GetCurrentContextId())); CDataTreatment(const CDataTreatment & data_treatment); // Not implemented yet. CDataTreatment(const CDataTreatment * const data_treatment); // Not implemented yet. /// Accesseurs /// const boost::shared_ptr getCurrentContext(void) const; const std::vector > & getEnabledFiles (void) const; /// Creation des sorties /// template void createDataOutput(void); /// Destructeur /// ~CDataTreatment(void); private : /// Traitements /// void doTreatment(void); void findAllEnabledFields(void); void solveAllGridRef(void); void solveAllOperation(void); void solveAllInheritance(void) const; void findEnabledFiles(void); /// Propriétés privées /// boost::shared_ptr currentContext; std::vector > enabledFiles; }; // CDataTreatment //---------------------------------------------------------------- template void CDataTreatment::createDataOutput(void) { std::vector >::const_iterator it = this->enabledFiles.begin(), end = this->enabledFiles.end(); for (; it != end; it++) { boost::shared_ptr file = *it; StdString filename = (!file->name.isEmpty()) ? file->name.getValue() : file->getId(); StdOStringStream oss; oss << "data/" << filename << "_node" << comm::CMPIManager::GetCommRank() << ".nc"; boost::shared_ptr dout(new T(oss.str(), false)); file->initializeDataOutput(dout); } } } // namespace data } // namespace xmlioserver #endif // __XMLIO_CDataTreatment__