summaryrefslogtreecommitdiff
path: root/TAO/CIAO/ciao/CCM_Deployment.idl
blob: c2325864898018c8ed27722c6b1be4aee89e0333 (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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
// $Id$

/**
 * @@ Compile this file with:
 *
 *     tao_idl -I ../.. \
 *          -Wb,export_macro=CIAO_Export \
 *          -Wb,export_include=CIAO_export.h \
 *          -Wb,pre_include="ace/pre.h" \
 *          -Wb,post_include="ace/post.h" \
 *          CCM_Deployment.idl
 */

//#define CIAO_HAS_IMPORT_KEYWORD

#if !defined (CCM_DEPLOYMENT_IDL)
#define CCM_DEPLOYMENT_IDL

#include "CCM_Component.idl"

// *************** Packaging and Deployment ***************

module Components
{
  typeprefix Components "omg.org";

  module Deployment
  {
    typedef string UUID;
    typedef string Location;

    enum AssemblyState
    {
      INACTIVE,
      INSERVICE
    };

    exception UnknownImplId {};
    exception InvalidLocation {};
    exception InstallationFailure
    {
      FailureReason reason;
    };
    exception InvalidAssembly {};

    interface ComponentInstallation
    {
      void install(in UUID implUUID,
                   in Location component_loc)
        raises (InvalidLocation,
                InstallationFailure);

      void replace(in UUID implUUID,
                   in Location component_loc)
        raises (InvalidLocation,
                InstallationFailure);

      void remove(in UUID implUUID)
        raises (UnknownImplId,
                RemoveFailure);

      Location get_implementation (in UUID implUUID)
        raises (UnknownImplId,
                InstallationFailure);
    };

    interface Assembly
    {
      void build()
        raises (CreateFailure);

      void tear_down()
        raises (RemoveFailure);

      AssemblyState get_state();
    };

    interface AssemblyFactory
    {
      Cookie create_assembly (in Location assembly_loc)
        raises (InvalidLocation,
                CreateFailure);

      Assembly lookup(in Cookie c)
        raises (InvalidAssembly);

      void destroy(in Cookie c)
        raises (InvalidAssembly,
                RemoveFailure);
    };

    interface ComponentServer;  // Forward decl.
    typedef sequence<ComponentServer> ComponentServers;

    interface ServerActivator
    {
      ComponentServer create_component_server (in ConfigValues config)
        raises (CreateFailure,
                InvalidConfiguration);

      void remove_component_server (in ComponentServer server)
        raises (RemoveFailure);

      ComponentServers get_component_servers ();
    };

    interface Container;        // Forward decl.
    typedef sequence<Container> Containers;

    interface ComponentServer
    {
      readonly attribute ConfigValues configuration;

      ServerActivator get_server_activator ();
      Container create_container (in ConfigValues config)
        raises (CreateFailure,
                InvalidConfiguration);

      void remove_container (in Container cref)
        raises (RemoveFailure);

      Containers get_containers ();

      void remove ()
        raises (RemoveFailure);
    };

    exception ImplEntryPointNotFound {};

    interface Container
    {
      readonly attribute ConfigValues configuration;

      ComponentServer get_component_server ();

      CCMHome install_home (in UUID id,
                            in string entrypt,
                            in ConfigValues config)
        raises (UnknownImplId,
                ImplEntryPointNotFound,
                InstallationFailure,
                InvalidConfiguration);

      void remove_home (in CCMHome href)
        raises (RemoveFailure);

      CCMHomes get_homes ();
      void remove ()
        raises (RemoveFailure);

    };

  };
};
#endif /* CCM_DEPLOYMENT_IDL */