1 #include "MEDMEM_MedMedDriver.hxx"
2 #include "MEDMEM_Compatibility21_22.hxx"
3 #include "MEDMEM_MedMedDriver21.hxx"
4 #include "MEDMEM_MedMedDriver22.hxx"
5 #include "MEDMEM_DriverFactory.hxx"
6 #include "MEDMEM_define.hxx"
9 using namespace MED_EN;
10 using namespace MEDMEM;
12 MED_MED_DRIVER::MED_MED_DRIVER(): GENDRIVER(),
13 _ptrMed((MED * const)MED_NULL),
14 _concreteMedDrv((GENDRIVER *) MED_NULL)
17 MED_MED_DRIVER::MED_MED_DRIVER(const string & fileName, MED * const ptrMed):
18 GENDRIVER(fileName,MED_EN::MED_RDWR), _ptrMed(ptrMed),
19 _concreteMedDrv((GENDRIVER *) MED_NULL)
21 //_ptrMed->addDriver(*this); // The specific MED driver id is set within the addDriver method.
24 MED_MED_DRIVER::MED_MED_DRIVER(const string & fileName,
26 MED_EN::med_mode_acces accessMode):
27 GENDRIVER(fileName,accessMode), _ptrMed(ptrMed),
28 _concreteMedDrv((GENDRIVER *) MED_NULL)
31 //REM : As t'on besoin du champ _status : _medIdt <-> _status ? Oui
33 MED_MED_DRIVER::MED_MED_DRIVER(const MED_MED_DRIVER & driver):
35 _ptrMed(driver._ptrMed),
36 _concreteMedDrv(driver._concreteMedDrv->copy())
40 MED_MED_DRIVER::~MED_MED_DRIVER()
42 MESSAGE("MED_MED_DRIVER::~MED_MED_DRIVER() has been destroyed");
43 if (_concreteMedDrv) delete _concreteMedDrv;
46 // ------------- Read Only Part --------------
48 IMED_MED_RDONLY_DRIVER::IMED_MED_RDONLY_DRIVER():MED_MED_DRIVER()
52 IMED_MED_RDONLY_DRIVER::IMED_MED_RDONLY_DRIVER(const string & fileName, MED * const ptrMed):
53 MED_MED_DRIVER(fileName,ptrMed,MED_EN::MED_RDONLY)
55 MESSAGE("MED_MED_RDONLY_DRIVER::MED_MED_RDONLY_DRIVER(const string & fileName, MED * const ptrMed) Constructeur read only");
58 IMED_MED_RDONLY_DRIVER::IMED_MED_RDONLY_DRIVER(const IMED_MED_RDONLY_DRIVER & driver):
59 MED_MED_DRIVER(driver)
63 IMED_MED_RDONLY_DRIVER::~IMED_MED_RDONLY_DRIVER()
65 MESSAGE("MED_MED_RDONLY_DRIVER::~MED_MED_RDONLY_DRIVER() has been destroyed");
68 void IMED_MED_RDONLY_DRIVER::write(void) const
71 throw MEDEXCEPTION("MED_MED_RDONLY_DRIVER::write : Can't write with a RDONLY driver !");
74 void IMED_MED_RDONLY_DRIVER::writeFrom(void) const
77 throw MEDEXCEPTION("MED_MED_RDONLY_DRIVER::writeFrom : Can't write with a RDONLY driver !");
80 // ------------- Write Only Part --------------
82 IMED_MED_WRONLY_DRIVER::IMED_MED_WRONLY_DRIVER()
86 IMED_MED_WRONLY_DRIVER::IMED_MED_WRONLY_DRIVER(const string & fileName, MED * const ptrMed):
87 MED_MED_DRIVER(fileName,ptrMed,MED_EN::MED_ECRI)
90 IMED_MED_WRONLY_DRIVER::IMED_MED_WRONLY_DRIVER(const IMED_MED_WRONLY_DRIVER & driver):
91 MED_MED_DRIVER(driver)
94 IMED_MED_WRONLY_DRIVER::~IMED_MED_WRONLY_DRIVER()
96 MESSAGE("MED_MED_WRONLY_DRIVER::~MED_MED_WRONLY_DRIVER() has been destroyed");
99 void IMED_MED_WRONLY_DRIVER::read(void)
102 throw MEDEXCEPTION("MED_MED_WRONLY_DRIVER::read : Can't read with a WRONLY driver !");
105 void IMED_MED_WRONLY_DRIVER::readFileStruct(void)
108 throw MEDEXCEPTION("MED_MED_WRONLY_DRIVER::read : Can't read with a WRONLY driver !");
111 // ------------- Read Write Part --------------
113 IMED_MED_RDWR_DRIVER::IMED_MED_RDWR_DRIVER()
116 IMED_MED_RDWR_DRIVER::IMED_MED_RDWR_DRIVER(const string & fileName, MED * const ptrMed):
117 IMED_MED_RDONLY_DRIVER(fileName,ptrMed),IMED_MED_WRONLY_DRIVER(fileName,ptrMed),MED_MED_DRIVER(fileName,ptrMed,MED_REMP)
120 IMED_MED_RDWR_DRIVER::IMED_MED_RDWR_DRIVER(const IMED_MED_RDWR_DRIVER & driver):
121 IMED_MED_RDONLY_DRIVER(driver),IMED_MED_WRONLY_DRIVER(driver),MED_MED_DRIVER(driver)
124 IMED_MED_RDWR_DRIVER::~IMED_MED_RDWR_DRIVER() {
125 MESSAGE("MED_MED_RDWR_DRIVER::~MED_MED_RDWR_DRIVER() has been destroyed");
128 MED_MED_RDONLY_DRIVER::MED_MED_RDONLY_DRIVER()
130 MESSAGE("You are using the default constructor of the Med read only Driver and it is 2.1 one");
131 _concreteMedDrv = new MED_MED_RDONLY_DRIVER21();
134 MED_MED_RDONLY_DRIVER::MED_MED_RDONLY_DRIVER(const string & fileName, MED * const ptrMed)
136 _concreteMedDrv = DRIVERFACTORY::buildMedDriverFromFile(fileName,ptrMed,MED_LECT);
139 MED_MED_RDONLY_DRIVER::MED_MED_RDONLY_DRIVER(const MED_MED_RDONLY_DRIVER & driver):MED_MED_DRIVER(driver)
143 MED_MED_RDONLY_DRIVER::~MED_MED_RDONLY_DRIVER()
147 void MED_MED_RDONLY_DRIVER::write ( void ) const throw (MEDEXCEPTION)
149 _concreteMedDrv->write();
152 void MED_MED_RDONLY_DRIVER::writeFrom ( void ) const throw (MEDEXCEPTION)
154 _concreteMedDrv->writeFrom();
157 void MED_MED_RDONLY_DRIVER::open() throw (MEDEXCEPTION)
159 _concreteMedDrv->open();
162 void MED_MED_RDONLY_DRIVER::close()
164 _concreteMedDrv->close();
166 void MED_MED_RDONLY_DRIVER::read ( void )
168 _concreteMedDrv->read();
171 void MED_MED_RDONLY_DRIVER::readFileStruct ( void )
173 _concreteMedDrv->readFileStruct();
176 GENDRIVER * MED_MED_RDONLY_DRIVER::copy ( void ) const
178 return new MED_MED_RDONLY_DRIVER(*this);
181 MED_MED_WRONLY_DRIVER::MED_MED_WRONLY_DRIVER()
183 MESSAGE("You are using the default constructor of the Med write only Driver and it is 2.1 one");
185 _concreteMedDrv = new MED_MED_WRONLY_DRIVER21();
188 MED_MED_WRONLY_DRIVER::MED_MED_WRONLY_DRIVER(const string & fileName, MED * const ptrMed)
190 _concreteMedDrv = DRIVERFACTORY::buildMedDriverFromFile(fileName,ptrMed,MED_ECRI);
193 MED_MED_WRONLY_DRIVER::MED_MED_WRONLY_DRIVER(const MED_MED_WRONLY_DRIVER & driver):MED_MED_DRIVER(driver)
197 MED_MED_WRONLY_DRIVER::~MED_MED_WRONLY_DRIVER()
201 void MED_MED_WRONLY_DRIVER::write ( void ) const throw (MEDEXCEPTION)
203 _concreteMedDrv->write();
206 void MED_MED_WRONLY_DRIVER::writeFrom ( void ) const throw (MEDEXCEPTION)
208 _concreteMedDrv->writeFrom();
211 void MED_MED_WRONLY_DRIVER::open() throw (MEDEXCEPTION)
213 _concreteMedDrv->open();
216 void MED_MED_WRONLY_DRIVER::close()
218 _concreteMedDrv->close();
221 void MED_MED_WRONLY_DRIVER::read ( void ) throw (MEDEXCEPTION)
223 _concreteMedDrv->read();
226 void MED_MED_WRONLY_DRIVER::readFileStruct ( void ) throw (MEDEXCEPTION)
228 _concreteMedDrv->readFileStruct();
231 GENDRIVER * MED_MED_WRONLY_DRIVER::copy ( void ) const
233 return _concreteMedDrv->copy();
236 MED_MED_RDWR_DRIVER::MED_MED_RDWR_DRIVER()
238 MESSAGE("You are using the default constructor of the Med read write Driver and it is 2.1 one");
239 _concreteMedDrv = new MED_MED_RDWR_DRIVER21();
242 MED_MED_RDWR_DRIVER::MED_MED_RDWR_DRIVER(const string & fileName, MED * const ptrMed)
244 _concreteMedDrv = DRIVERFACTORY::buildMedDriverFromFile(fileName,ptrMed,MED_REMP);
247 MED_MED_RDWR_DRIVER::MED_MED_RDWR_DRIVER(const MED_MED_RDWR_DRIVER & driver):
248 MED_MED_DRIVER(driver)
252 MED_MED_RDWR_DRIVER::~MED_MED_RDWR_DRIVER()
256 void MED_MED_RDWR_DRIVER::write ( void ) const throw (MEDEXCEPTION)
258 _concreteMedDrv->write();
261 void MED_MED_RDWR_DRIVER::writeFrom ( void ) const throw (MEDEXCEPTION)
263 _concreteMedDrv->writeFrom();
266 void MED_MED_RDWR_DRIVER::open() throw (MEDEXCEPTION)
268 _concreteMedDrv->open();
271 void MED_MED_RDWR_DRIVER::close()
273 _concreteMedDrv->close();
276 void MED_MED_RDWR_DRIVER::read ( void ) throw (MEDEXCEPTION)
278 _concreteMedDrv->read();
281 void MED_MED_RDWR_DRIVER::readFileStruct ( void ) throw (MEDEXCEPTION)
283 _concreteMedDrv->readFileStruct();
286 GENDRIVER * MED_MED_RDWR_DRIVER::copy ( void ) const
288 return _concreteMedDrv->copy();