1 //=============================================================================
2 // File : SALOME_Container_i.hxx
3 // Created : jeu jui 12 08:04:44 CEST 2001
4 // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA
6 // Copyright : EDF 2001 - CEA 2001
8 //=============================================================================
10 #ifndef _SALOME_CONTAINER_I_HXX_
11 #define _SALOME_CONTAINER_I_HXX_
17 #include <sys/types.h>
18 #include <SALOMEconfig.h>
19 #include CORBA_SERVER_HEADER(SALOME_Component)
20 #include <omnithread.h>
24 class SALOME_NamingService;
26 class Engines_Container_i: public POA_Engines::Container,
27 public PortableServer::RefCountServantBase
30 Engines_Container_i();
31 Engines_Container_i(CORBA::ORB_ptr orb,
32 PortableServer::POA_ptr poa,
33 char * containerName ,
34 int argc, char* argv[]);
35 // Constructeur pour composant parallele : ne pas faire appel au naming service
36 Engines_Container_i(CORBA::ORB_ptr orb,
37 PortableServer::POA_ptr poa,
40 virtual ~Engines_Container_i();
43 Engines::Container_ptr start_impl(const char* ContainerName);
45 Engines::Component_ptr load_impl(const char* nameToRegister,
46 const char* componentName);
47 void remove_impl(Engines::Component_ptr component_i);
48 void finalize_removal();
57 SALOME_NamingService *_NS ;
59 string _containerName;
61 PortableServer::POA_var _poa;
62 PortableServer::ObjectId * _id ;
64 map<string, void *> handle_map ;
65 map<string, void *> remove_map ;
66 omni_mutex _numInstanceMutex ; // if several threads on the same object