Salome HOME
NRI : Change lGeometryClient by lGEOMClient.
[modules/smesh.git] / src / SMESH_I / SMESH_HypothesisFactory_i.hxx
1 //=============================================================================
2 // File      : SMESH_HypothesisFactory_i.hxx
3 // Created   : dim mai 19 22:02:45 CEST 2002
4 // Author    : Paul RASCLE, EDF
5 // Project   : SALOME
6 // Copyright : EDF 2002
7 // $Header$
8 //=============================================================================
9
10 #ifndef _SMESH_HYPOTHESISFACTORY_I_HXX_
11 #define _SMESH_HYPOTHESISFACTORY_I_HXX_
12
13 #include "SMESH_Hypothesis_i.hxx"
14 #include <map>
15 #include <string>
16
17 class GenericHypothesisCreator_i
18 {
19 public:
20   virtual SMESH_Hypothesis_i* Create(const char* anHyp,
21                                      int studyId,
22                                      ::SMESH_Gen* genImpl) = 0;
23 };
24
25 class SMESH_HypothesisFactory_i
26 {
27 public:
28   SMESH_HypothesisFactory_i();
29   virtual ~SMESH_HypothesisFactory_i();
30
31   SMESH_Hypothesis_i* Create(const char* anHyp,
32                              CORBA::Long studyId,
33                              ::SMESH_Gen* genImpl)
34     throw (SALOME::SALOME_Exception);
35
36 private:
37   map<string, GenericHypothesisCreator_i*> _creatorMap;
38 };
39
40 #endif