Salome HOME
Version ok de MED avec MEDGUI.
[modules/med.git] / src / MEDMEM / MEDMEM_MedMedDriver.hxx
1 #ifndef MED_MED_DRIVER_HXX
2 #define MED_MED_DRIVER_HXX
3
4 #include <string>
5 #include "MEDMEM_STRING.hxx"
6 #include "utilities.h"
7 #include "MEDMEM_Exception.hxx"
8
9 #include "MEDMEM_GenDriver.hxx"
10
11 #include "MEDMEM_define.hxx"
12
13 //using namaspace MED_FR ;
14
15 class MESH;
16 class FIELD_;
17 class MED;
18
19 // This driver pilots within a MED class read/write accesses of fields/meshes
20 class MED_MED_DRIVER : public GENDRIVER
21 {
22 protected:
23   
24   MED * const       _ptrMed;         // Store 'MED_DRIVER (0..n)----(1) MED' associations
25   med_idt           _medIdt;         // The _medIdt used to write/read Meshes to ::_filename
26    
27   //private:
28   //  MED_MED_DRIVER();
29
30 public :
31   MED_MED_DRIVER();
32
33   MED_MED_DRIVER(const string & fileName,  MED * const ptrMed);
34
35   MED_MED_DRIVER(const string & fileName,  MED * const ptrMed,
36                  MED_EN::med_mode_acces accessMode);
37   // OPERATEUR DE RECOPIE AVEC _medIdt ??
38
39   void open();
40   void close();
41
42   virtual void write          ( void ) const ;
43   virtual void writeFrom      ( void ) const ;
44   virtual void read           ( void ) ;
45   virtual void readFileStruct ( void ) ;
46
47 };
48
49 class MED_MED_RDONLY_DRIVER : public virtual MED_MED_DRIVER
50 {
51 public :
52   MED_MED_RDONLY_DRIVER():MED_MED_DRIVER(){};
53
54   MED_MED_RDONLY_DRIVER(const string & fileName,  MED * const ptrMed);
55
56   ~MED_MED_RDONLY_DRIVER() { 
57     MESSAGE("MED_MED_RDONLY_DRIVER::~MED_MED_RDONLY_DRIVER() has been destroyed");
58   } 
59
60   void open();
61   void close();
62
63   void read           ( void ) ;
64   void readFileStruct ( void ) ;
65 };
66
67 class MED_MED_WRONLY_DRIVER : public virtual MED_MED_DRIVER
68 {
69
70 public :
71   MED_MED_WRONLY_DRIVER():MED_MED_DRIVER(){};
72
73   MED_MED_WRONLY_DRIVER(const string & fileName,  MED * const ptrMed);
74
75   ~MED_MED_WRONLY_DRIVER() { 
76     MESSAGE("MED_MED_WRONLY_DRIVER::~MED_MED_WRONLY_DRIVER() has been destroyed");
77   } 
78
79   void open();
80   void close();
81
82   void write          ( void ) const ;
83   void writeFrom      ( void ) const ;
84 };
85
86 class MED_MED_RDWR_DRIVER : public virtual MED_MED_RDONLY_DRIVER,
87                             public virtual MED_MED_WRONLY_DRIVER,
88                             public virtual MED_MED_DRIVER
89 {
90
91 public :
92   MED_MED_RDWR_DRIVER():MED_MED_DRIVER(){};
93
94   MED_MED_RDWR_DRIVER(const string & fileName,  MED * const ptrMed);
95
96   ~MED_MED_RDWR_DRIVER() { 
97     MESSAGE("MED_MED_RDWR_DRIVER::~MED_MED_RDWR_DRIVER() has been destroyed");
98   } 
99
100   void open();
101   void close();
102
103   void write          ( void ) const ;
104   void writeFrom      ( void ) const ;
105   void read           ( void ) ;
106   void readFileStruct ( void ) ;
107 };
108
109 #endif /* MED_MED_DRIVER_HXX */