Salome HOME
Building a version which will be tagged PreV2_0_0 working with KERNEL V1_4_0.
[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
8 main () {
9   
10   const char * fileName   = "pointe.med";
11   const char * fileName2  = "Field&MeshGeneratedPointe.med";
12   const char * fileName3  = "MedGeneratedPointe.med";
13   const char * fieldName  = "fieldcelldouble";
14   const char * meshName   = "maa1";
15
16   try {
17     // Test creation of drivers from the standard driver method of an object
18     {  
19       FIELD<double> * myField = new FIELD<double>();
20       MED_FIELD_RDONLY_DRIVER<double> myRdOnlyDriver(fileName,myField);
21       myRdOnlyDriver.setFieldName(fieldName);
22       myRdOnlyDriver.open(); 
23       //This test failed due to inadequate Support implementation   
24       // myRdOnlyDriver.read();
25       // try  { myRdOnlyDriver.write(); } catch  (MEDEXCEPTION& ex) 
26       //   { MESSAGE(ex.what()); }
27       MED_FIELD_WRONLY_DRIVER<double> myWrOnlyDriver(fileName2,myField);
28       myWrOnlyDriver.open(); 
29       //This test failed due to inadequate Support implementation   
30       // myWrOnlyDriver.write(); 
31       // try  myWrOnlyDriver.read(); catch  (MEDEXCEPTION& ex) 
32       //   { MESSAGE(ex.what()); }
33       myRdOnlyDriver.close();
34       myWrOnlyDriver.close();
35       delete myField;
36     }
37
38     {
39       MESH * myMesh = new MESH();
40       MED_MESH_RDONLY_DRIVER myRdOnlyDriver(fileName,myMesh);
41       myRdOnlyDriver.setMeshName(meshName);
42       myRdOnlyDriver.open(); 
43       myRdOnlyDriver.read();
44       myRdOnlyDriver.close(); 
45       // try  { myRdOnlyDriver.write(); } catch  (MEDEXCEPTION& ex)
46       //   { MESSAGE(ex.what()); }
47       MED_MESH_WRONLY_DRIVER myWrOnlyDriver(fileName2,myMesh);
48       myWrOnlyDriver.setMeshName(meshName);
49       myWrOnlyDriver.open(); 
50       myWrOnlyDriver.write(); 
51       // try  myWrOnlyDriver.read(); catch  (MEDEXCEPTION& ex)
52       //   { MESSAGE(ex.what()); }
53       // myRdOnlyDriver.close(); 
54       //While we use H5close() in the MESH/FIELD drivers, the next
55       //line will fail, because all files are previously closed !
56       myWrOnlyDriver.close();
57       delete myMesh;
58     }
59
60     {
61       MED * myMed = new MED();
62       MED_MED_RDONLY_DRIVER myRdOnlyDriver(fileName,myMed);
63       myRdOnlyDriver.open(); 
64       myRdOnlyDriver.readFileStruct();
65       myRdOnlyDriver.close(); 
66       myMed->updateSupport(); // DOIT ETRE SUPPRIMEE
67       //      myRdOnlyDriver.read();
68       // try { myRdOnlyDriver.write(); } catch  (MEDEXCEPTION& ex) 
69       //   { MESSAGE(ex.what()); }
70       //MED_MED_WRONLY_DRIVER myWrOnlyDriver(fileName3,myMed);
71       //myWrOnlyDriver.open(); 
72       //myWrOnlyDriver.write(); // Not implemented yet.
73       //myWrOnlyDriver.close();
74       delete myMed;
75     }
76
77   } catch (MEDEXCEPTION& ex){
78     cout << "MAIN BLOCK EXCEPTION" << endl;
79     MESSAGE(ex.what()) ;
80   }
81 }