1 #ifndef MED_MED_DRIVER_HXX
2 #define MED_MED_DRIVER_HXX
5 #include "MEDMEM_STRING.hxx"
7 #include "MEDMEM_Exception.hxx"
8 #include "MEDMEM_GenDriver.hxx"
9 #include "MEDMEM_define.hxx"
15 Generic part : implement open and close methods.
19 // This driver pilots within a MED class read/write accesses of fields/meshes
25 class MED_MED_DRIVER : public GENDRIVER
29 MED * const _ptrMed; // Store 'MED_DRIVER (0..n)----(1) MED' associations
30 GENDRIVER * _concreteMedDrv;
40 MED_MED_DRIVER(const string & fileName, MED * const ptrMed);
44 MED_MED_DRIVER(const string & fileName, MED * const ptrMed,
45 MED_EN::med_mode_acces accessMode);
47 // OPERATEUR DE RECOPIE AVEC _medIdt ??
51 MED_MED_DRIVER(const MED_MED_DRIVER & driver);
56 virtual ~MED_MED_DRIVER() ;
58 virtual void open() throw (MEDEXCEPTION) = 0 ;
59 virtual void close() = 0 ;
60 virtual void write ( void ) const = 0 ;
61 virtual void writeFrom ( void ) const = 0 ;
62 virtual void read ( void ) = 0 ;
63 virtual void readFileStruct ( void ) = 0 ;
66 virtual GENDRIVER * copy ( void ) const = 0 ;
68 friend class MED_MED_RDONLY_DRIVER;
69 friend class MED_MED_WRONLY_DRIVER;
70 friend class MED_MED_RDWR_DRIVER;
75 Driver Med for MED : Read only.
77 Implement read method.
81 class IMED_MED_RDONLY_DRIVER : public virtual MED_MED_DRIVER
87 IMED_MED_RDONLY_DRIVER();
91 IMED_MED_RDONLY_DRIVER(const string & fileName, MED * const ptrMed);
95 IMED_MED_RDONLY_DRIVER(const IMED_MED_RDONLY_DRIVER & driver);
100 virtual ~IMED_MED_RDONLY_DRIVER();
103 Return a MEDEXCEPTION : it is the read-only driver.
105 void write ( void ) const throw (MEDEXCEPTION) ;
107 Return a MEDEXCEPTION : it is the read-only driver.
109 void writeFrom ( void ) const throw (MEDEXCEPTION) ;
114 Driver Med for MED : Write only.
116 Implement write method.
120 class IMED_MED_WRONLY_DRIVER : public virtual MED_MED_DRIVER
127 IMED_MED_WRONLY_DRIVER();
131 IMED_MED_WRONLY_DRIVER(const string & fileName, MED * const ptrMed);
135 IMED_MED_WRONLY_DRIVER(const IMED_MED_WRONLY_DRIVER & driver);
140 virtual ~IMED_MED_WRONLY_DRIVER();
143 Return a MEDEXCEPTION : it is the write-only driver.
145 void read ( void ) throw (MEDEXCEPTION) ;
147 Return a MEDEXCEPTION : it is the write-only driver.
149 void readFileStruct ( void ) throw (MEDEXCEPTION) ;
155 Driver Med for MED : Read write.
156 - Use read method from MED_MED_RDONLY_DRIVER
157 - Use write method from MED_MED_WDONLY_DRIVER
161 class IMED_MED_RDWR_DRIVER : public virtual IMED_MED_RDONLY_DRIVER,
162 public virtual IMED_MED_WRONLY_DRIVER
169 IMED_MED_RDWR_DRIVER();
173 IMED_MED_RDWR_DRIVER(const string & fileName, MED * const ptrMed);
177 IMED_MED_RDWR_DRIVER(const IMED_MED_RDWR_DRIVER & driver);
182 ~IMED_MED_RDWR_DRIVER();
186 class MED_MED_RDONLY_DRIVER : public virtual IMED_MED_RDONLY_DRIVER
189 MED_MED_RDONLY_DRIVER();
190 MED_MED_RDONLY_DRIVER(const string & fileName, MED * const ptrMed);
191 MED_MED_RDONLY_DRIVER(const MED_MED_RDONLY_DRIVER & driver);
192 virtual ~MED_MED_RDONLY_DRIVER();
193 void write ( void ) const throw (MEDEXCEPTION) ;
194 void writeFrom ( void ) const throw (MEDEXCEPTION) ;
195 virtual void open() throw (MEDEXCEPTION) ;
196 virtual void close() ;
197 virtual void read ( void ) ;
198 virtual void readFileStruct ( void ) ;
200 GENDRIVER * copy ( void ) const;
203 class MED_MED_WRONLY_DRIVER : public virtual IMED_MED_WRONLY_DRIVER
207 MED_MED_WRONLY_DRIVER();
208 MED_MED_WRONLY_DRIVER(const string & fileName, MED * const ptrMed);
209 MED_MED_WRONLY_DRIVER(const MED_MED_WRONLY_DRIVER & driver);
210 virtual ~MED_MED_WRONLY_DRIVER();
211 void write ( void ) const throw (MEDEXCEPTION) ;
212 void writeFrom ( void ) const throw (MEDEXCEPTION) ;
213 virtual void open() throw (MEDEXCEPTION) ;
214 virtual void close() ;
215 virtual void read ( void ) throw (MEDEXCEPTION) ;
216 virtual void readFileStruct ( void ) throw (MEDEXCEPTION) ;
218 GENDRIVER * copy ( void ) const;
221 class MED_MED_RDWR_DRIVER : public IMED_MED_RDWR_DRIVER
225 MED_MED_RDWR_DRIVER();
226 MED_MED_RDWR_DRIVER(const string & fileName, MED * const ptrMed);
227 MED_MED_RDWR_DRIVER(const MED_MED_RDWR_DRIVER & driver);
228 ~MED_MED_RDWR_DRIVER();
229 void write ( void ) const throw (MEDEXCEPTION) ;
230 void writeFrom ( void ) const throw (MEDEXCEPTION) ;
231 virtual void open() throw (MEDEXCEPTION) ;
232 virtual void close() ;
233 virtual void read ( void ) throw (MEDEXCEPTION) ;
234 virtual void readFileStruct ( void ) throw (MEDEXCEPTION) ;
236 GENDRIVER * copy ( void ) const;
240 #endif /* MED_MED_DRIVER_HXX */