blob: 55ac0c7dfdd7b226f53c7a5faeaa44c19838d784 (
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
|
// $Id$
#if !defined (DEPLOYMENT_CONTAINER_IDL)
#define DEPLOYMENT_CONTAINER_IDL
#include "ciao/Deployment_Application.idl"
#include "ciao/Deployment_Core.idl"
// *************** Packaging and Deployment ***************
module Deployment
{
interface NodeApplication; // Forward decl.
/// CIAO specific
struct Component_Info
{
string component_instance_name;
Components::CCMObject component_ref;
};
/// CIAO specific
typedef sequence < Component_Info > ComponentInfos;
/// CIAO specific
struct ComponentImplementationInfo
{
string component_instance_name;
string executor_dll;
string executor_entrypt;
string servant_dll;
string servant_entrypt;
Properties component_config;
// Properties home_config; //ignored for now.
};
/// CIAO specific
typedef sequence <ComponentImplementationInfo> ComponentImplementationInfos;
// ContainerImplementationInfo contains a list of components to be installed and
// policy configuration for the container which hosts these components
/// CIAO specific
struct ContainerImplementationInfo
{
ComponentImplementationInfos impl_infos;
Properties container_config;
};
/// CIAO specific
typedef sequence <ContainerImplementationInfo> ContainerImplementationInfos;
/// CIAO specific interface, which could deal with installing multiple
/// containers into a single NodeApplication.
interface Container
{
readonly attribute ::Deployment::Properties properties;
/// Get the NodeApplication which created us
NodeApplication get_node_application ();
/// Initialize the container with policies
// long init (in ::CORBA::PolicyList policies);
// NW: The following should be component specific info because the
// container has already been created and initialized at this
// time. So there's not much container configuration to be done
// at this stage.
//@@ The container_impl_info will contain
//1 component instance name as the key.
//2 dll/so name of the exec
//3 entry point of the exec
//4 dll/so name of the svnt
//5 entry point of the svnt
//6 Poosible other configuration for container/home/component
/// Install all homes and components
Deployment::ComponentInfos install (in ContainerImplementationInfo container_impl_info)
raises (UnknownImplId,
ImplEntryPointNotFound,
InstallationFailure,
::Components::InvalidConfiguration);
/// Remove all homes and components
void remove ()
raises (::Components::RemoveFailure);
/// Remove a component instance
void remove_component (in string inst_name)
raises (::Components::RemoveFailure);
};
typedef sequence<Container> Containers;
};
#endif /* DEPLOYMENT_CONTAINER_IDL */
|