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
|
// $Id$
#if !defined (DEPLOYMENT_NODEAPPLICATION_IDL)
#define DEPLOYMENT_NODEAPPLICATION_IDL
#include "Deployment_Application.idl"
#include "Deployment_Core.idl"
#include "Deployment_Container.idl"
#include "Deployment_Events.idl"
// *************** Packaging and Deployment ***************
module Deployment
{
/// CIAO specific extension
/// This struct captures the installation information of a particular
/// CIAO_Event_Service, as defined in <ciaosvcs/Events/CIAO_Events.idl>
struct ESInstallationInfo
{
string id;
CIAO::EventServiceType type;
string svcconf;
//Properties es_config;
};
/// CIAO specific
struct NodeImplementationInfo
{
ContainerImplementationInfos impl_infos;
Properties nodeapp_config;
};
/// CIAO specific
typedef sequence<CIAO::CIAO_Event_Service> CIAO_Event_Services;
/// CIAO specific extension
typedef sequence<ESInstallationInfo> ESInstallationInfos;
interface NodeApplication : Application
{
/// CIAO specific extensions
readonly attribute ::Deployment::Properties properties;
/// CIAO specific operation to handle dynamic system redeployment
/// and reconfiguration
/// @@ Initialize the nodeapplication, so it will know what
/// components it will create and home many of them are
/// there. However the real create action will take place when
/// start launch is called on NodeApplicationManager.
long init ();
/// @@ This operation will be called by NodeApplicationManager
/// client to really start to create homes and components.
/// CIAO specific extensions
ComponentInfos install (in NodeImplementationInfo node_impl_info)
raises (UnknownImplId,
ImplEntryPointNotFound,
InstallationFailure,
::Components::InvalidConfiguration,
::Components::RemoveFailure);
/// CIAO specific extension
/// This operation will create one or more CIAO_Event_Service objects
/// within the NodeApplication, which will be used to mediate the
/// communication of CCM events
CIAO::CIAO_Event_Service install_es (
in CIAO::DAnCE::EventServiceDeploymentDescription es_info)
raises (InstallationFailure);
/// CIAO specific extensions
///@@ We know that Deployment::NodeApplicationManager will be returned,
/// however to avoid the size of the shared object of CIAO_Server.
/// we return an Object.
Object get_node_application_manager ();
/// CIAO specific extension
Container create_container (in ::Deployment::Properties properties)
raises (::Components::CreateFailure,
::Components::InvalidConfiguration);
/// CIAO specific extension
void remove_container (in Container cref)
raises (::Components::RemoveFailure);
/// CIAO specific extension
Containers get_containers ();
/// CIAO specific extension
/// Remove a component instance from the NodeApplication
void remove_component (in string inst_name)
raises (::Components::RemoveFailure);
/// CIAO specific extensions
/// Activate a component instance from the NodeApplication
void activate_component (in string inst_name)
raises (::Deployment::StartError);
/// CIAO specific extensions
/// Passivate a component instance from the NodeApplication
void passivate_component (in string inst_name)
raises (::Components::RemoveFailure);
/// Remove all containers, components and component homes.
/// Shuts down the ORB of the NodeApplication to terminate the process.
oneway void remove ();
/// CIAO specific extension. This will enforce the component to
/// be activated (preactivate, activate, postactivated) before the assembly
/// is established
void ciao_preactivate ()
raises (StartError);
/// CIAO specific extension
void ciao_postactivate ()
raises (StartError);
/// CIAO specific extension
void ciao_passivate ()
raises (StopError);
};
};
#endif /* DEPLOYMENT_CORE_IDL */
|