summaryrefslogtreecommitdiff
path: root/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h
blob: e8247c744fe220082c279d6421fee6e01ff0951e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// -*- C++ -*-

//=============================================================================
/**
 *  @file    ExecutionManager_Impl.h
 *
 *  $Id$
 *
 * @Brief  Implementation of Deployment::ExecutionManager and POA_DAnCE::ExecutionManagerDaemon
 *
 * @author Erwin Gottlieb <eg@prismtech.com>
 */
//=============================================================================

#ifndef EXECUTIONMANAGER_IMPL_H_
#define EXECUTIONMANAGER_IMPL_H_

#include "ace/Map_Manager.h"
#include "ace/SStringfwd.h"
#include "orbsvcs/orbsvcs/CosNamingC.h"
#include "ExecutionManager_Export.h"
#include "Deployment/CIAO_ExecutionManagerDaemonS.h"
#include "Deployment/Deployment_NodeManagerC.h"
#include "DomainApplicationManager/DomainApplicationManager_Impl.h"
#include "DomainApplicationManager/Node_Locator.h"

namespace DAnCE
  {
  class ExecutionManager_Export ExecutionManager_Impl
        : public virtual POA_DAnCE::ExecutionManagerDaemon
    {
    private:
      typedef ACE_Map_Manager<ACE_CString, DomainApplicationManager_Impl*, ACE_Null_Mutex> TDomainManagers;

    public:

      ExecutionManager_Impl (CORBA::ORB_ptr orb,
                             PortableServer::POA_ptr poa,
                             CosNaming::NamingContext_ptr);

      virtual ~ExecutionManager_Impl();

      virtual ::Deployment::DomainApplicationManager_ptr preparePlan (
        const ::Deployment::DeploymentPlan & plan,
        ::Deployment::ResourceCommitmentManager_ptr resourceCommitment
      );

      virtual ::Deployment::DomainApplicationManagers * getManagers (
      );

      virtual void destroyManager (
        ::Deployment::DomainApplicationManager_ptr manager
      );

      // This one derived from ExecutionManagerDaemon interface
      // for shutdowning DAnCE agent
      virtual void shutdown ();
      
      void add_node_manager (const ACE_TCHAR *name, const ACE_TCHAR *ior);

      void load_node_map (const ACE_TCHAR *filename);
      
    private:
      CORBA::ORB_var orb_;
      PortableServer::POA_var poa_;
      TDomainManagers managers_;
      Node_Locator locator_;
    };
}//DAnCE

#endif /*EXECUTIONMANAGER_IMPL_H_*/