summaryrefslogtreecommitdiff
path: root/DAnCE/dance/DAnCE_LocalityManager.idl
blob: a910bd26170acc4c7f7e2a2651dd7c0734dbc0a9 (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#ifndef DANCE_LOCALITYMANAGER_IDL
#define DANCE_LOCALITYMANAGER_IDL

#include "Deployment/Deployment_Application.idl"
#include "Deployment/Deployment_ApplicationManager.idl"
#include "Deployment/Deployment_InvalidProperty.idl"
#include "Deployment/Deployment_InvalidNodeExecParameter.idl"
#include "Deployment/Deployment_InvalidComponentExecParameter.idl"
#include "Deployment/Deployment_InvalidConnection.idl"
#include "Deployment/Deployment_StopError.idl"
#include "Deployment/Deployment_StopError.idl"
#include "Deployment/Deployment_PlanError.idl"
#include "Deployment/Deployment_ResourceNotAvailable.idl"
#include "Deployment/Deployment_ResourceCommitmentManager.idl"

module DAnCE
{
  /**
   * @interface InstanceDeploymentHandler
   * @brief Interface used to manage the lifecycle of instances.
   *
   * This interface is used by the LocalityManager to manage the lifecycle
   * of various instance types.  Each instance type requires a separate IDH.
   */
  local interface InstanceDeploymentHandler
  {
    readonly attribute string instance_type;

    readonly attribute ::CORBA::StringSeq dependencies;

    void configure (in ::Deployment::Properties config);

    void install_instance (in ::Deployment::DeploymentPlan plan,
                           in unsigned long instanceRef,
                           out any instance_reference)
      raises (Deployment::StartError,
              Deployment::InvalidProperty,
              Deployment::InvalidNodeExecParameter,
              Deployment::InvalidComponentExecParameter);

    void provide_endpoint_reference (in ::Deployment::DeploymentPlan plan,
                                     in unsigned long connectionRef,
                                     out any endpoint_reference)
      raises (Deployment::StartError,
              Deployment::InvalidProperty);

    void connect_instance (in ::Deployment::DeploymentPlan plan,
                           in unsigned long connectionRef,
                           in any provided_reference)
      raises (Deployment::StartError,
              Deployment::InvalidConnection);

    void disconnect_instance (in ::Deployment::DeploymentPlan plan,
                              in unsigned long connectionRef)
      raises (::Deployment::StopError);

    void instance_configured (in ::Deployment::DeploymentPlan plan,
                              in unsigned long instanceRef)
      raises (Deployment::StartError);

    void activate_instance (in ::Deployment::DeploymentPlan plan,
                            in unsigned long instanceRef,
                            in any instance_reference)
      raises (Deployment::StartError);

    void passivate_instance (in ::Deployment::DeploymentPlan plan,
                             in unsigned long instanceRef,
                             in any instance_reference)
      raises (Deployment::StopError);

    void remove_instance (in ::Deployment::DeploymentPlan plan,
                          in unsigned long instanceRef,
                          in any instance_reference)
      raises (::Deployment::StopError);

    /// Instruct the handler to release any resources prior to deallocation.
    void close ();
  };

  interface LocalityManager :
    Deployment::Application,
    Deployment::ApplicationManager
  {
    readonly attribute ::Deployment::Properties configuration;

    Deployment::ApplicationManager
      preparePlan (in Deployment::DeploymentPlan plan,
                   in Deployment::ResourceCommitmentManager resourceCommitment)
      raises (Deployment::StartError,
              Deployment::PlanError);

    void destroyManager (in ::Deployment::ApplicationManager manager)
      raises (Deployment::StopError);

    oneway void shutdown ();
  };

  local interface LocalityConfiguration
  {
    readonly attribute string type;

    void configure (in ::Deployment::Property prop);
  };

  interface LocalityManagerActivator
  {
    void locality_manager_callback (in LocalityManager ref,
                                    in string uuid,
                                    out Deployment::Properties config);

    void configuration_complete (in string uuid);
  };
};

#endif