Salome HOME
merging the main trunk with the BrForComp branch to build a pre V3_0_1
[modules/med.git] / src / MEDMEM / MEDMEM_MedMedDriver21.hxx
1 #ifndef MED_MED_DRIVER21_HXX
2 #define MED_MED_DRIVER21_HXX
3
4 #include "MEDMEM_MedMedDriver.hxx"
5 #include <string>
6 #include "utilities.h"
7 #include "MEDMEM_Exception.hxx"
8 #include "MEDMEM_GenDriver.hxx"
9 #include "MEDMEM_define.hxx"
10
11 /*!
12
13   Driver Med for MED.
14
15   Generic part : implement open and close methods.
16
17 */
18
19 // This driver pilots within a MED class read/write accesses of fields/meshes
20 namespace MEDMEM {
21 class MESH;
22 class FIELD_;
23 class MED;
24
25 class MED_MED_DRIVER21 : public virtual MED_MED_DRIVER
26 {
27 protected:
28
29   med_2_1::med_idt           _medIdt;         // The _medIdt used to write/read Meshes to ::_filename
30    
31 public :
32   MED_MED_DRIVER21();
33   MED_MED_DRIVER21(const string & fileName,  MED * const ptrMed);
34   MED_MED_DRIVER21(const string & fileName,  MED * const ptrMed,
35                    MED_EN::med_mode_acces accessMode);
36   MED_MED_DRIVER21(const MED_MED_DRIVER21 & driver);
37   virtual ~MED_MED_DRIVER21();
38   void open() throw (MEDEXCEPTION) ;
39   void close();
40   virtual void write          ( void ) const ;
41   virtual void writeFrom      ( void ) const  ;
42   virtual void read           ( void )  ;
43   virtual void readFileStruct ( void ) ;
44 private:
45   virtual GENDRIVER * copy ( void ) const  ;
46 };
47
48 /*!
49
50   Driver Med for MED : Read only.
51
52   Implement read method.
53
54 */
55
56   class MED_MED_RDONLY_DRIVER21 : public virtual IMED_MED_RDONLY_DRIVER, public virtual MED_MED_DRIVER21
57 {
58 public :
59   MED_MED_RDONLY_DRIVER21();
60   MED_MED_RDONLY_DRIVER21(const string & fileName,  MED * const ptrMed);
61   MED_MED_RDONLY_DRIVER21(const MED_MED_RDONLY_DRIVER21 & driver);
62   virtual ~MED_MED_RDONLY_DRIVER21();
63   void write          ( void ) const throw (MEDEXCEPTION) ;
64   void writeFrom      ( void ) const throw (MEDEXCEPTION) ;
65   void read           ( void ) throw (MEDEXCEPTION);
66   void readFileStruct ( void ) throw (MEDEXCEPTION) ;
67 private:
68   virtual GENDRIVER * copy ( void ) const ;
69 };
70
71 class MED_MED_WRONLY_DRIVER21 : public virtual IMED_MED_WRONLY_DRIVER, public virtual MED_MED_DRIVER21
72 {
73
74 public :
75   MED_MED_WRONLY_DRIVER21();
76   MED_MED_WRONLY_DRIVER21(const string & fileName,  MED * const ptrMed);
77   MED_MED_WRONLY_DRIVER21(const MED_MED_WRONLY_DRIVER21 & driver);
78   virtual ~MED_MED_WRONLY_DRIVER21();
79   void write          ( void ) const throw (MEDEXCEPTION);
80   void writeFrom      ( void ) const throw (MEDEXCEPTION);
81   void read           ( void ) throw (MEDEXCEPTION) ;
82   void readFileStruct ( void ) throw (MEDEXCEPTION) ;
83 private:
84   virtual GENDRIVER * copy ( void ) const ;
85 };
86
87 class MED_MED_RDWR_DRIVER21 : public MED_MED_RDONLY_DRIVER21,
88                               public MED_MED_WRONLY_DRIVER21,
89                               public IMED_MED_RDWR_DRIVER
90 {
91 public :
92   MED_MED_RDWR_DRIVER21();
93   MED_MED_RDWR_DRIVER21(const string & fileName,  MED * const ptrMed);
94   MED_MED_RDWR_DRIVER21(const MED_MED_RDWR_DRIVER21 & driver);
95   ~MED_MED_RDWR_DRIVER21();
96   void write          ( void ) const throw (MEDEXCEPTION);
97   void writeFrom      ( void ) const throw (MEDEXCEPTION);
98   void read           ( void ) throw (MEDEXCEPTION);
99   void readFileStruct ( void ) throw (MEDEXCEPTION);
100 private:
101   virtual GENDRIVER * copy ( void ) const ;
102 };
103
104 }
105
106 #endif /* MED_MED_DRIVER21_HXX */