Salome HOME
PR: modify makefiles to separate rules for libraries and binaries.
[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 class SALOME_ContainerManager: public POA_Engines::ContainerManager,
15                                public PortableServer::RefCountServantBase {
16 private:
17   SALOME_ResourcesManager _ResManager;
18   SALOME_LoadRateManager _LoadManager;
19   SALOME_NamingService *_NS;
20 public:
21   SALOME_ContainerManager(CORBA::ORB_ptr orb);
22   ~SALOME_ContainerManager();
23   Engines::Container_ptr FindOrStartContainer(const char *containerName, const Engines::MachineList& possibleComputer);
24   Engines::MachineList *GetFittingResources(const Engines::MachineParameters& params, const char *componentName);
25   char* FindBest(const Engines::MachineList& possibleComputers);
26   void Shutdown();
27   void ShutdownContainers();
28
29   static const char *_ContainerManagerNameInNS;
30 private:
31   Engines::Container_ptr FindContainer(const char *containerName,const Engines::MachineList& possibleComputers);
32   Engines::Container_ptr FindContainer(const char *containerName,const char *theMachine);
33   std::string BuildContainerNameInNS(const char *containerName,const char *machineName);
34 };
35
36 #endif