Salome HOME
Merge from BR_V5_DEV 16Feb09
[modules/med.git] / src / MEDMEM / MEDMEM_EnsightMedDriver.hxx
index 93808b3f64bdcdd4000748d6ac24c681f1324487..2125c91683f1a8ef32830b9e2acaedf85b16affa 100644 (file)
@@ -1,21 +1,23 @@
-// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-// 
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either 
-// version 2.1 of the License.
-// 
-// This library is distributed in the hope that it will be useful 
-// but WITHOUT ANY WARRANTY; without even the implied warranty of 
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-// Lesser General Public License for more details.
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-// You should have received a copy of the GNU Lesser General Public  
-// License along with this library; if not, write to the Free Software 
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 #ifndef ENSIGHT_MED_DRIVER_HXX
 #define ENSIGHT_MED_DRIVER_HXX
@@ -25,7 +27,7 @@
 #include "MEDMEM_Utilities.hxx"
 #include "MEDMEM_Exception.hxx"
 
-#include "MEDMEM_GenDriver.hxx"
+#include "MEDMEM_EnsightUtils.hxx"
 
 #include <fstream>
 
@@ -37,73 +39,78 @@ class MESH;
 class SUPPORT;
 class FIELD_;
 class MED;
-// This driver pilots within a ENSIGHT class read/write accesses of fields/meshes
-class ENSIGHT_MED_DRIVER : public GENDRIVER
+
+// ==============================================================================
+/*!
+ * \brief Base of EnSight drivers
+ */
+// ==============================================================================
+
+class MEDMEM_EXPORT ENSIGHT_MED_DRIVER : public MEDMEM_ENSIGHT::_CaseFileDriver_User
 {
 protected:
   
-  MED * const       _ptrMed ;              // Store 'ENSIGHT_DRIVER (0..n)----(1) ENSIGHT' associations
+  MED * _ptrMed;          // Store 'ENSIGHT_DRIVER (0..n)----(1) ENSIGHT' associations
  
-  virtual void openConst()  const =0;
-  virtual void closeConst() const =0;
+  virtual void openConst()  const;
 
 public :
   ENSIGHT_MED_DRIVER();
-  ENSIGHT_MED_DRIVER(const string & fileName, MED * const ptrMed);
-  ENSIGHT_MED_DRIVER(const string & fileName,  MED * const ptrMed,
-                MED_EN::med_mode_acces accessMode);
+  ENSIGHT_MED_DRIVER(const string & fileName, MED * ptrMed);
+  ENSIGHT_MED_DRIVER(const string & fileName, MED * ptrMed,
+                     MED_EN::med_mode_acces accessMode);
   ENSIGHT_MED_DRIVER(const ENSIGHT_MED_DRIVER & driver);
   virtual ~ENSIGHT_MED_DRIVER();
-  // OPERATEUR DE RECOPIE AVEC _ensightFile ??
-
-  void open();
-  void close();
-  virtual void write( void ) const = 0 ;
-  virtual void read( void ) = 0 ;
-  virtual GENDRIVER * copy (void ) const = 0;
 
+  virtual void open();
+  virtual void close();
 };
 
-class ENSIGHT_MED_RDONLY_DRIVER : public virtual ENSIGHT_MED_DRIVER
+// ==============================================================================
+/*!
+ * \brief Reading EnSight driver
+ */
+// ==============================================================================
+
+class MEDMEM_EXPORT ENSIGHT_MED_RDONLY_DRIVER : public virtual ENSIGHT_MED_DRIVER
 {
 public :
   ENSIGHT_MED_RDONLY_DRIVER();
-  ENSIGHT_MED_RDONLY_DRIVER(const string & fileName,  MED * const ptrMed);
+  ENSIGHT_MED_RDONLY_DRIVER(const string & fileName,  MED * ptrMed);
   ENSIGHT_MED_RDONLY_DRIVER(const ENSIGHT_MED_RDONLY_DRIVER & driver);
   virtual ~ENSIGHT_MED_RDONLY_DRIVER();
-  void openConst()  const;
-  void closeConst() const;
-  void write          ( void ) const throw (MEDEXCEPTION) ;
+  virtual void write          ( void ) const throw (MEDEXCEPTION) ;
   virtual void read           ( void ) ;
-//   virtual void readFileStruct ( void ) ;
-private:
-  ifstream *        _ensightFile;         // The main _ensightFile used to read geom and data _filename
+  virtual void readFileStruct ( void ) ;
   GENDRIVER * copy ( void ) const;
+private:
+
+  bool _isFileStructRead;
 };
 
-class ENSIGHT_MED_WRONLY_DRIVER : public virtual ENSIGHT_MED_DRIVER
-{
+// ==============================================================================
+/*!
+ * \brief Writing EnSight driver.
+ * To set writing format use
+ * setEnSightFormatForWriting(EnSightFormat) and
+ * setEnSightBinaryFormatForWriting(bool)
+ */
+// ==============================================================================
 
+class MEDMEM_EXPORT ENSIGHT_MED_WRONLY_DRIVER : public virtual ENSIGHT_MED_DRIVER
+{
 public :
   ENSIGHT_MED_WRONLY_DRIVER();
-  ENSIGHT_MED_WRONLY_DRIVER(const string & fileName,  MED * const ptrMed);
+  ENSIGHT_MED_WRONLY_DRIVER(const string & fileName,  MED * ptrMed);
   ENSIGHT_MED_WRONLY_DRIVER(const ENSIGHT_MED_WRONLY_DRIVER & driver);
   virtual ~ENSIGHT_MED_WRONLY_DRIVER();
-  void openConst()  const;
-  void closeConst() const;
-  void write          ( void ) const throw (MEDEXCEPTION) ;
-//   void writeFrom      ( void ) const throw (MEDEXCEPTION) ;
+  virtual void write          ( void ) const throw (MEDEXCEPTION) ;
   virtual void read           ( void ) throw (MEDEXCEPTION) ;
-//   virtual void readFileStruct ( void ) throw (MEDEXCEPTION) ;
-private:
-  ofstream *        _ensightFile;         // The main _ensightFile used to write geom and data _filename
+  //virtual void readFileStruct ( void ) throw (MEDEXCEPTION) ;
   GENDRIVER * copy ( void ) const;
-  void writeMesh(MESH * myMesh,int imesh) const ;
-  void writeSupport(SUPPORT * mySupport) const ;
-  void writeField(FIELD_ * myField,string name) const ;
 };
 
-};
+}
 
 
 #endif /* ENSIGTH_MED_DRIVER_HXX */