Salome HOME
sources v1.2
[modules/smesh.git] / src / SMESH_I / SMESH_MEDSupport_i.hxx
1 //  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
2 //
3 //  Copyright (C) 2003  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 //  File   : SMESH_MEDSupport_i.hxx
25 //  Module : SMESH
26
27 #ifndef _MED_SMESH_MEDSUPPORT_I_HXX_
28 #define _MED_SMESH_MEDSUPPORT_I_HXX_
29
30 #include <SALOMEconfig.h>
31 #include CORBA_SERVER_HEADER(MED)
32 #include <string>
33
34 #include "SMESHDS_Mesh.hxx"
35 #include "SMESHDS_SubMesh.hxx"
36 #include "SMDS_MeshElement.hxx"
37 #include "SMDS_MeshNode.hxx"
38
39 #include "SMESH_MEDSupport_i.hxx"
40
41 class SMESH_subMesh_i;
42
43 class SMESH_MEDSupport_i: 
44   public POA_SALOME_MED::SUPPORT,
45   public PortableServer::RefCountServantBase 
46 {
47
48 protected :
49     SMESH_MEDSupport_i();
50     ~SMESH_MEDSupport_i();
51
52
53 public :
54   
55   Handle_SMESHDS_SubMesh  _subMeshDS;
56   ::SMESH_subMesh_i*      _subMesh_i;
57
58   Handle_SMESHDS_Mesh     _meshDS;
59     string                   _name;
60     string                   _description;
61     bool                     _isOnAllElements;
62     bool                     _seqNumber;
63     int                      _seqLength;
64
65     SALOME_MED::medEntityMesh         _entity;
66     SALOME_MED::medGeometryElement *  _geometricType;
67     int                               _numberOfGeometricType;
68
69
70 public:
71
72     // Constructors and associated internal methods
73   SMESH_MEDSupport_i(SMESH_subMesh_i* sm,
74                      string name, 
75                      string description,
76                      SALOME_MED::medEntityMesh entity);
77   SMESH_MEDSupport_i(const SMESH_MEDSupport_i & s);
78   
79   // IDL Methods
80   char *               getName()         throw (SALOME::SALOME_Exception);
81   char *               getDescription()  throw (SALOME::SALOME_Exception);
82   SALOME_MED::MESH_ptr getMesh()         throw (SALOME::SALOME_Exception);
83   CORBA::Boolean       isOnAllElements() throw (SALOME::SALOME_Exception);
84   SALOME_MED::medEntityMesh getEntity()  throw (SALOME::SALOME_Exception);
85   CORBA::Long          getNumberOfElements(SALOME_MED::medGeometryElement geomElement) 
86     throw (SALOME::SALOME_Exception);
87   Engines::long_array* getNumber(SALOME_MED::medGeometryElement geomElement) 
88     throw (SALOME::SALOME_Exception);
89   Engines::long_array* getNumberIndex() 
90     throw (SALOME::SALOME_Exception);
91   CORBA::Long          getNumberOfGaussPoints(SALOME_MED::medGeometryElement geomElement) 
92     throw (SALOME::SALOME_Exception);
93   SALOME_MED::medGeometryElement_array* getTypes() 
94     throw (SALOME::SALOME_Exception);
95   CORBA::Long          getCorbaIndex()   throw (SALOME::SALOME_Exception);
96   void                 createSeq()       throw (SALOME::SALOME_Exception);
97   
98
99 };
100
101 #endif /* _MED_MEDSUPPORT_I_HXX_ */