diff options
Diffstat (limited to 'modules/CIAO/ciao/Containers/Container_Base.idl')
-rw-r--r-- | modules/CIAO/ciao/Containers/Container_Base.idl | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/modules/CIAO/ciao/Containers/Container_Base.idl b/modules/CIAO/ciao/Containers/Container_Base.idl new file mode 100644 index 00000000000..da2d406573a --- /dev/null +++ b/modules/CIAO/ciao/Containers/Container_Base.idl @@ -0,0 +1,95 @@ +/** + * @file Container_Base.idl + * @author William R. Otte <wotte@dre.vanderbilt.edu> + * $Id$ + * Container local interface. + */ + +#include "tao/PortableServer/PortableServer_include.pidl" +#include "ccm/CCM_Home.idl" +#include "ccm/CCM_Base.idl" +#include "ciao/Containers/CIAO_Servant_Activator.idl" + +module CIAO +{ + module Container_Types + { + enum OA_Type + { + COMPONENT_t, + HOME_t, + FACET_CONSUMER_t + }; + }; + + exception InvalidComponent + { + }; + + /** + * @interface Container + * @brief Internal container interfaces. + * + * This interface provides interfactes to two portions of the CIAO + * container architecture: The generic external container interface + * created by the component server, and the component specific container + * portions generated by the CIDL compiler (the component servant) + */ + local interface Container + { + // **** Methods used by external container + Components::CCMHome install_home (in string primary_artifact, + in string entry_point, + in string servant_artifact, + in string servant_entrypoint, + in string name); + + void uninstall_home (in Components::CCMHome homeptr); + + Components::CCMObject install_component (in string primary_artifact, + in string entry_point, + in string servant_artifact, + in string servant_entrypoint, + in string name); + + void activate_component (in Components::CCMObject name); + + void passivate_component (in Components::CCMObject name); + + void uninstall_component (in Components::CCMObject compptr); + + void connect_local_facet (in ::Components::CCMObject provider_ref, + in string provider_port, + in ::Components::CCMObject user_ref, + in string user_port) + raises (::Components::InvalidConnection, + ::Components::AlreadyConnected); + + void disconnect_local_facet (in ::Components::CCMObject provider_ref, + in string provider_port, + in ::Components::CCMObject user_ref, + in string user_port) + raises (::Components::InvalidConnection); + + // *** Methods used by component specific container portions + Object install_servant (in PortableServer::Servant svnt, + in Container_Types::OA_Type type, + out PortableServer::ObjectId oid); + + void uninstall_servant (in PortableServer::Servant compptr, + in Container_Types::OA_Type type, + out PortableServer::ObjectId oid); + + Servant_Activator ports_servant_activator (); + + Object generate_reference (in string obj_id, + in string repo_id, + in Container_Types::OA_Type type); + + Object get_objref (in PortableServer::Servant p); + + PortableServer::POA the_POA (); + + PortableServer::POA the_port_POA (); + }; +}; |