Salome HOME
Merge from BR_V5_DEV 16Feb09
[modules/med.git] / src / MEDSPLITTER / MEDSPLITTER_MESHCollectionMedAsciiDriver.hxx
1 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
2 //
3 //  This library is free software; you can redistribute it and/or
4 //  modify it under the terms of the GNU Lesser General Public
5 //  License as published by the Free Software Foundation; either
6 //  version 2.1 of the License.
7 //
8 //  This library is distributed in the hope that it will be useful,
9 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 //  Lesser General Public License for more details.
12 //
13 //  You should have received a copy of the GNU Lesser General Public
14 //  License along with this library; if not, write to the Free Software
15 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 #ifndef MESHCOLLECTIONMEDASCIIDRIVER_HXX_
20 #define MESHCOLLECTIONMEDASCIIDRIVER_HXX_
21
22 #include "MEDSPLITTER_MESHCollectionDriver.hxx"
23
24 namespace MEDSPLITTER{
25         
26 class MESHCollection;
27   
28   class MESHCollectionMedAsciiDriver:public MESHCollectionDriver
29 {
30 public:
31   
32   MESHCollectionMedAsciiDriver(MESHCollection*);
33   virtual ~MESHCollectionMedAsciiDriver(){}
34
35   int read(char*);
36
37   void write(char*);
38   
39         void readFields(vector <MEDMEM::FIELD<int> *>& filenames, char* fieldname,
40                                                                         int itnumber, int ordernumber)
41         {
42                 _readFields(filenames,fieldname,itnumber,ordernumber);
43         }
44         void readFields(vector <MEDMEM::FIELD<double> *>& filenames, char* fieldname,
45                                                                         int itnumber, int ordernumber)
46         {
47                 _readFields(filenames,fieldname,itnumber,ordernumber);
48         }
49         
50         void writeFields(vector <MEDMEM::FIELD<int> *>& filenames, char* fieldname)
51         {
52                 _writeFields( filenames, fieldname);
53         }
54         
55         void writeFields(vector <MEDMEM::FIELD<double> *>& filenames, char* fieldname)
56         {
57                 _writeFields( filenames, fieldname);
58         }
59
60     
61 private :
62         template <class T> void _readFields(vector <MEDMEM::FIELD<T> *>& filenames, char* fieldname,
63                                                                                                                                                         int itnumber, int ordernumber);
64   
65   template <class T>
66   void _writeFields(vector <MEDMEM::FIELD<T> *>& filenames, char* fieldname);
67   
68
69   
70         std::string m_master_filename;
71 };
72
73 }
74
75
76 #endif /*MESHCOLLECTIONDRIVER_HXX_*/