Salome HOME
Version ok de MED avec MEDGUI.
[modules/med.git] / src / MEDMEM / MEDMEM_GenDriver.hxx
1 #ifndef GENDRIVER_HXX
2 #define GENDRIVER_HXX
3
4 #include <string>
5
6 #include "MEDMEM_define.hxx"
7 #include "utilities.h"
8
9 /* Generic Read/Write Driver Class for Meshes & Fields */
10
11 typedef enum { MED_DRIVER = 0, VTK_DRIVER = 1, NO_DRIVER = 255 } driverTypes;
12
13 using namespace MED_EN;
14 using namespace std;
15
16 class GENDRIVER {
17
18 protected :
19
20   int            _id;         // MED_INVALID : if the driver hasn't been created by a MedMedDriver
21                               // the MedMedDriver index of the driver vector in the MED object where it has been created
22   /*File related part*/
23   string         _fileName;
24   med_mode_acces _accessMode; 
25   int            _status;
26   driverTypes    _driverType; //  A FAIRE LE POSITIONNER DS TOUTES LES SS CLASSES !!
27
28 public:
29   GENDRIVER();
30   
31   GENDRIVER(const string & fileName,med_mode_acces accessMode);
32   GENDRIVER(const GENDRIVER & genDriver);
33   ~GENDRIVER();
34
35   GENDRIVER & operator=(const GENDRIVER & genDriver);
36
37   friend ostream & operator<<(ostream &os,const GENDRIVER &genDriver);
38
39   bool operator ==(const GENDRIVER &genDriver) const;
40  
41   virtual void open ( void ) = 0;
42   virtual void close( void ) = 0;
43   virtual void write( void ) const = 0;
44   virtual void read ( void ) = 0;
45   
46   // MED  related part
47   virtual void writeFrom      ( void );
48   virtual void readFileStruct ( void );
49   // MESH related Part
50   virtual void setMeshName    ( const string & meshName);
51   // FIELD related Part
52   virtual void setFieldName   ( const string & fieldName);
53
54   string getFileName () const;
55   void   setFileName (const string & fileName);
56   med_mode_acces getAccessMode() const;
57 };
58
59
60
61 #endif /* GENDRIVER_HXX */