summaryrefslogtreecommitdiff
path: root/modules/CIAO/ciao/Containers/Container_Base.idl
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/ciao/Containers/Container_Base.idl')
-rw-r--r--modules/CIAO/ciao/Containers/Container_Base.idl82
1 files changed, 82 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..01a79b71a15
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Container_Base.idl
@@ -0,0 +1,82 @@
+/**
+ * @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 "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
+ {
+ CORBA::PolicyList get_receptacle_policy (in string name);
+ // **** 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);
+
+ // *** 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 ();
+ };
+};