diff options
Diffstat (limited to 'CIAO/DAnCE/Deployment/Deployment_Container.idl')
-rw-r--r-- | CIAO/DAnCE/Deployment/Deployment_Container.idl | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/CIAO/DAnCE/Deployment/Deployment_Container.idl b/CIAO/DAnCE/Deployment/Deployment_Container.idl new file mode 100644 index 00000000000..3e35cbae5b3 --- /dev/null +++ b/CIAO/DAnCE/Deployment/Deployment_Container.idl @@ -0,0 +1,93 @@ +// $Id$ + +#if !defined (DEPLOYMENT_CONTAINER_IDL) +#define DEPLOYMENT_CONTAINER_IDL + +#include "DAnCE/Deployment/Deployment_Application.idl" +#include "DAnCE/Deployment/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 */ |