Salome HOME
e90b6030a60d0e96dfc5ff6b4e10019a2216abd0
[tools/medcoupling.git] / doc / MEDMEM / MEDMEM_InvokingDriverByAttachingItToAnObject.cxx
1 #include "MEDMEM_Exception.hxx"
2 #include "MEDMEM_define.hxx"
3
4 #include "MEDMEM_Field.hxx"
5 #include "MEDMEM_Mesh.hxx"
6 #include "MEDMEM_Med.hxx"
7 #include "MEDMEM_MedMedDriver.hxx"
8 #include "MEDMEM_MedMeshDriver.hxx"
9
10 using namespace MEDMEM ;
11 using namespace MED_EN ;
12
13 main () {
14   
15   const char * fileName   = "pointe.med";
16   const char * fileName2  = "Field&MeshGeneratedPointe.med";
17   const char * fileName3  = "MedGeneratedPointe.med";
18   const char * fieldName  = "fieldcelldouble";
19   const char * meshName   = "maa1";
20
21   try {
22     // Test creation of drivers from the standard driver method of an object
23     {  
24       FIELD<double> * myField = new FIELD<double>();
25       MED_FIELD_RDONLY_DRIVER<double> myRdOnlyDriver(fileName,myField);
26       myRdOnlyDriver.setFieldName(fieldName);
27       myRdOnlyDriver.open(); 
28       //This test failed due to inadequate Support implementation   
29       // myRdOnlyDriver.read();
30       // try  { myRdOnlyDriver.write(); } catch  (MEDEXCEPTION& ex) 
31       //   { MESSAGE(ex.what()); }
32       MED_FIELD_WRONLY_DRIVER<double> myWrOnlyDriver(fileName2,myField);
33       myWrOnlyDriver.open(); 
34       //This test failed due to inadequate Support implementation   
35       // myWrOnlyDriver.write(); 
36       // try  myWrOnlyDriver.read(); catch  (MEDEXCEPTION& ex) 
37       //   { MESSAGE(ex.what()); }
38       myRdOnlyDriver.close();
39       myWrOnlyDriver.close();
40       delete myField;
41     }
42
43     {
44       MESH * myMesh = new MESH();
45       MED_MESH_RDONLY_DRIVER myRdOnlyDriver(fileName,myMesh);
46       myRdOnlyDriver.setMeshName(meshName);
47       myRdOnlyDriver.open(); 
48       myRdOnlyDriver.read();
49       myRdOnlyDriver.close(); 
50       // try  { myRdOnlyDriver.write(); } catch  (MEDEXCEPTION& ex)
51       //   { MESSAGE(ex.what()); }
52       MED_MESH_WRONLY_DRIVER myWrOnlyDriver(fileName2,myMesh);
53       myWrOnlyDriver.setMeshName(meshName);
54       myWrOnlyDriver.open(); 
55       myWrOnlyDriver.write(); 
56       // try  myWrOnlyDriver.read(); catch  (MEDEXCEPTION& ex)
57       //   { MESSAGE(ex.what()); }
58       // myRdOnlyDriver.close(); 
59       //While we use H5close() in the MESH/FIELD drivers, the next
60       //line will fail, because all files are previously closed !
61       myWrOnlyDriver.close();
62       delete myMesh;
63     }
64
65     {
66       MED * myMed = new MED();
67       MED_MED_RDONLY_DRIVER myRdOnlyDriver(fileName,myMed);
68       myRdOnlyDriver.open(); 
69       myRdOnlyDriver.readFileStruct();
70       myRdOnlyDriver.close(); 
71       myMed->updateSupport(); // DOIT ETRE SUPPRIMEE
72       //      myRdOnlyDriver.read();
73       // try { myRdOnlyDriver.write(); } catch  (MEDEXCEPTION& ex) 
74       //   { MESSAGE(ex.what()); }
75       //MED_MED_WRONLY_DRIVER myWrOnlyDriver(fileName3,myMed);
76       //myWrOnlyDriver.open(); 
77       //myWrOnlyDriver.write(); // Not implemented yet.
78       //myWrOnlyDriver.close();
79       delete myMed;
80     }
81
82   } catch (MEDEXCEPTION& ex){
83     cout << "MAIN BLOCK EXCEPTION" << endl;
84     MESSAGE(ex.what()) ;
85   }
86 }