source: XMLIO_V2/dev/dev_rv/src/data_treatment.hpp @ 143

Last change on this file since 143 was 141, checked in by hozdoba, 13 years ago

Mise à jour depuis un autre dépôt

File size: 2.3 KB
Line 
1#ifndef __XMLIO_CDataTreatment__
2#define __XMLIO_CDataTreatment__
3
4/// xmlioserver headers ///
5#include "xmlioserver_spl.hpp"
6#include "node/node_type.hpp"
7#include "manager/mpi_manager.hpp"
8#include "data_output.hpp"
9
10namespace xmlioserver
11{
12   namespace data
13   {
14      /// ////////////////////// Déclarations ////////////////////// ///
15      class CDataTreatment
16      {
17         public :
18
19            /// Construteurs ///
20            CDataTreatment
21               (boost::shared_ptr<CContext> _ctxt =
22                  CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()));
23
24            CDataTreatment(const CDataTreatment & data_treatment);       // Not implemented yet.
25            CDataTreatment(const CDataTreatment * const data_treatment); // Not implemented yet.
26
27            /// Accesseurs ///
28            const boost::shared_ptr<CContext> getCurrentContext(void) const;
29            const std::vector<boost::shared_ptr<CFile> > & getEnabledFiles  (void) const;
30
31            /// Creation des sorties ///
32            template <class T> void createDataOutput(void);
33
34            /// Destructeur ///
35            ~CDataTreatment(void);
36
37         private :
38
39            /// Traitements ///
40            void doTreatment(void);
41
42            void findAllEnabledFields(void);
43            void solveAllGridRef(void);
44            void solveAllOperation(void);
45            void solveAllInheritance(void) const;
46            void findEnabledFiles(void);
47
48            /// Propriétés privées ///
49            boost::shared_ptr<CContext> currentContext;
50            std::vector<boost::shared_ptr<CFile> > enabledFiles;
51
52      }; // CDataTreatment
53
54      //----------------------------------------------------------------
55
56      template <class T>
57         void CDataTreatment::createDataOutput(void)
58      {
59         BOOST_FOREACH(boost::shared_ptr<CFile> file, this->enabledFiles)
60         {
61            StdString filename = (!file->name.isEmpty())
62                               ? file->name.getValue() : file->getId();
63            StdOStringStream oss;
64            oss << "data/" << filename << "_node" << comm::CMPIManager::GetCommRank() << ".nc";
65            boost::shared_ptr<io::CDataOutput> dout(new T(oss.str(), false));
66            file->initializeDataOutput(dout);
67         }
68      }
69
70   } // namespace data
71
72} // namespace xmlioserver
73
74#endif // __XMLIO_CDataTreatment__
Note: See TracBrowser for help on using the repository browser.