summaryrefslogtreecommitdiff
path: root/modules/CIAO/ciao/Deployment_Container.idl
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/ciao/Deployment_Container.idl')
-rw-r--r--modules/CIAO/ciao/Deployment_Container.idl93
1 files changed, 93 insertions, 0 deletions
diff --git a/modules/CIAO/ciao/Deployment_Container.idl b/modules/CIAO/ciao/Deployment_Container.idl
new file mode 100644
index 00000000000..55ac0c7dfdd
--- /dev/null
+++ b/modules/CIAO/ciao/Deployment_Container.idl
@@ -0,0 +1,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 */