Salome HOME
Merge from V6_main_20120808 08Aug12
[modules/med.git] / doc / MEDMEM / MEDMEM_InvokingDriverByAttachingItToAnObject.cxx
1 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22
23 #include "MEDMEM_Exception.hxx"
24 #include "MEDMEM_define.hxx"
25
26 #include "MEDMEM_Field.hxx"
27 #include "MEDMEM_Mesh.hxx"
28 #include "MEDMEM_MedMeshDriver.hxx"
29
30 using namespace MEDMEM ;
31 using namespace MED_EN ;
32
33 main () {
34   
35   const char * fileName   = "pointe.med";
36   const char * fileName2  = "Field&MeshGeneratedPointe.med";
37   const char * fileName3  = "MedGeneratedPointe.med";
38   const char * fieldName  = "fieldcelldoublescalar";
39   const char * meshName   = "maa1";
40
41   try {
42     // Test creation of drivers from the standard driver method of an object
43     {  
44       FIELD<double> * myField = new FIELD<double>();
45       MED_FIELD_RDONLY_DRIVER<double> myRdOnlyDriver(fileName,myField);
46       myRdOnlyDriver.setFieldName(fieldName);
47       myRdOnlyDriver.open(); 
48       myRdOnlyDriver.read();
49       // try  { myRdOnlyDriver.write(); } catch  (MEDEXCEPTION& ex) 
50       //   { MESSAGE(ex.what()); }
51       MED_FIELD_WRONLY_DRIVER<double> myWrOnlyDriver(fileName2,myField);
52       myWrOnlyDriver.open(); 
53       myWrOnlyDriver.write(); 
54       // try  myWrOnlyDriver.read(); catch  (MEDEXCEPTION& ex) 
55       //   { MESSAGE(ex.what()); }
56       myRdOnlyDriver.close();
57       myWrOnlyDriver.close();
58       delete myField;
59     }
60
61     {
62       MESH * myMesh = new MESH();
63       MED_MESH_RDONLY_DRIVER myRdOnlyDriver(fileName,myMesh);
64       myRdOnlyDriver.setMeshName(meshName);
65       myRdOnlyDriver.open(); 
66       myRdOnlyDriver.read();
67       myRdOnlyDriver.close(); 
68       // try  { myRdOnlyDriver.write(); } catch  (MEDEXCEPTION& ex)
69       //   { MESSAGE(ex.what()); }
70       MED_MESH_WRONLY_DRIVER myWrOnlyDriver(fileName2,myMesh);
71       myWrOnlyDriver.setMeshName(meshName);
72       myWrOnlyDriver.open(); 
73       myWrOnlyDriver.write(); 
74       // try  myWrOnlyDriver.read(); catch  (MEDEXCEPTION& ex)
75       //   { MESSAGE(ex.what()); }
76       myRdOnlyDriver.close(); 
77       myWrOnlyDriver.close();
78       delete myMesh;
79     }
80
81
82   } catch (MEDEXCEPTION& ex){
83     cout << "MAIN BLOCK EXCEPTION" << endl;
84     MESSAGE_MED(ex.what()) ;
85   }
86 }