Salome HOME
1217db07bfb6ac18d201c53031be3df6cbe4eeff
[modules/kernel.git] / src / Container / SALOME_ContainerManager.hxx
1 #ifndef __SALOME_CONTAINERMANAGER_HXX__
2 #define __SALOME_CONTAINERMANAGER_HXX__
3
4 #include <SALOMEconfig.h>
5 #include CORBA_CLIENT_HEADER(SALOME_Component)
6 #include CORBA_CLIENT_HEADER(SALOME_ContainerManager)
7 #include "SALOME_ResourcesManager.hxx"
8 #include "SALOME_LoadRateManager.hxx"
9
10 #include <string>
11
12 class SALOME_NamingService;
13
14 #if defined CONTAINER_EXPORTS
15 #if defined WIN32
16 #define CONTAINER_EXPORT __declspec( dllexport )
17 #else
18 #define CONTAINER_EXPORT
19 #endif
20 #else
21 #if defined WNT
22 #define CONTAINER_EXPORT __declspec( dllimport )
23 #else
24 #define CONTAINER_EXPORT
25 #endif
26 #endif
27
28 class CONTAINER_EXPORT SALOME_ContainerManager:
29   public POA_Engines::ContainerManager,
30   public PortableServer::RefCountServantBase
31 {
32
33 public:
34   SALOME_ContainerManager(CORBA::ORB_ptr orb);
35   ~SALOME_ContainerManager();
36
37   Engines::Container_ptr
38   FindOrStartContainer(const Engines::MachineParameters& params,
39                        const Engines::MachineList& possibleComputer);
40
41   Engines::MachineList *
42   GetFittingResources(const Engines::MachineParameters& params,
43                       const char *componentName);
44
45   char* FindBest(const Engines::MachineList& possibleComputers);
46
47   void Shutdown();
48   void ShutdownContainers();
49
50   static const char *_ContainerManagerNameInNS;
51
52 private:
53   Engines::Container_ptr
54   FindContainer(const Engines::MachineParameters& params,
55                 const Engines::MachineList& possibleComputers);
56
57   Engines::Container_ptr
58   FindContainer(const Engines::MachineParameters& params,
59                 const char *theMachine);
60
61   long GetIdForContainer(void);
62   long _id;
63
64   SALOME_ResourcesManager *_ResManager;
65   SALOME_NamingService *_NS;
66 };
67
68 #endif