summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraky <aky@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2011-06-29 21:59:17 +0000
committeraky <aky@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2011-06-29 21:59:17 +0000
commit9fe8f5549f60e7cd8fd64b2c914774af228a2704 (patch)
tree1d9912532545bddc8f7dcf30b4d814b14d2e556c
parentbb397f18a2ce5b3fe6d2b00f636f4a3dedb39031 (diff)
downloadATCD-9fe8f5549f60e7cd8fd64b2c914774af228a2704.tar.gz
Wed Jun 29 21:56:17 UTC 2011 Akshay V. Dabholkar <aky@dre.vanderbilt.edu>
-rw-r--r--CIAO/ChangeLog42
-rw-r--r--CIAO/MPC/config/ccm_generic_stub.mpb4
-rw-r--r--CIAO/MPC/config/ciao_generic_container.mpb6
-rw-r--r--CIAO/MPC/config/ciao_generic_container_stub.mpb4
-rw-r--r--CIAO/ccm/Generic/CCM_ClientContainerInterceptor.idl27
-rw-r--r--CIAO/ccm/Generic/CCM_ClientContainerInterceptorRegistration.idl24
-rw-r--r--CIAO/ccm/Generic/CCM_ContainerClientRequestInfo.idl20
-rw-r--r--CIAO/ccm/Generic/CCM_ContainerInterceptor.idl24
-rw-r--r--CIAO/ccm/Generic/CCM_ContainerRequestInfo.idl22
-rw-r--r--CIAO/ccm/Generic/CCM_ContainerServantRequestInfo.idl25
-rw-r--r--CIAO/ccm/Generic/CCM_ContainerServerRequestInfo.idl20
-rw-r--r--CIAO/ccm/Generic/CCM_ContainerStubRequestInfo.idl24
-rw-r--r--CIAO/ccm/Generic/CCM_Generic.mpc122
-rw-r--r--CIAO/ccm/Generic/CCM_GenericComponent.idl20
-rw-r--r--CIAO/ccm/Generic/CCM_GenericContext.idl37
-rw-r--r--CIAO/ccm/Generic/CCM_InvalidRegistration.idl14
-rw-r--r--CIAO/ccm/Generic/CCM_QoS.idl31
-rw-r--r--CIAO/ccm/Generic/CCM_ServantContainerInterceptor.idl26
-rw-r--r--CIAO/ccm/Generic/CCM_ServantContainerInterceptorRegistration.idl24
-rw-r--r--CIAO/ccm/Generic/CCM_ServerContainerInterceptor.idl28
-rw-r--r--CIAO/ccm/Generic/CCM_ServerContainerInterceptorRegistration.idl24
-rw-r--r--CIAO/ccm/Generic/CCM_StubContainerInterceptor.idl26
-rw-r--r--CIAO/ccm/Generic/CCM_StubContainerInterceptorRegistration.idl24
-rw-r--r--CIAO/ciao/Containers/Generic/Generic_Container.mpc2
-rw-r--r--CIAO/ciao/Contexts/Generic/Generic_Context_T.cpp80
-rw-r--r--CIAO/ciao/Contexts/Generic/Generic_Context_T.h89
-rw-r--r--CIAO/ciao/Servants/Generic/Servant_Impl_T.cpp201
-rw-r--r--CIAO/ciao/Servants/Generic/Servant_Impl_T.h98
28 files changed, 1080 insertions, 8 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index 05b806cd125..3236ffeb1b4 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,45 @@
+Wed Jun 29 21:56:17 UTC 2011 Akshay V. Dabholkar <aky@dre.vanderbilt.edu>
+
+ * MPC/config/ccm_generic_stub.mpb:
+ * MPC/config/ciao_generic_container.mpb:
+ * MPC/config/ciao_generic_container_stub.mpb:
+
+ * ccm/Generic:
+
+ * ccm/Generic/CCM_ClientContainerInterceptor.idl:
+ * ccm/Generic/CCM_ClientContainerInterceptorRegistration.idl:
+ * ccm/Generic/CCM_ContainerClientRequestInfo.idl:
+ * ccm/Generic/CCM_ContainerInterceptor.idl:
+ * ccm/Generic/CCM_ContainerRequestInfo.idl:
+ * ccm/Generic/CCM_ContainerServantRequestInfo.idl:
+ * ccm/Generic/CCM_ContainerServerRequestInfo.idl:
+ * ccm/Generic/CCM_ContainerStubRequestInfo.idl:
+ * ccm/Generic/CCM_Generic.mpc:
+ * ccm/Generic/CCM_GenericComponent.idl:
+ * ccm/Generic/CCM_GenericContext.idl:
+ * ccm/Generic/CCM_InvalidRegistration.idl:
+ * ccm/Generic/CCM_QoS.idl:
+ * ccm/Generic/CCM_ServantContainerInterceptor.idl:
+ * ccm/Generic/CCM_ServantContainerInterceptorRegistration.idl:
+ * ccm/Generic/CCM_ServerContainerInterceptor.idl:
+ * ccm/Generic/CCM_ServerContainerInterceptorRegistration.idl:
+ * ccm/Generic/CCM_StubContainerInterceptor.idl:
+ * ccm/Generic/CCM_StubContainerInterceptorRegistration.idl:
+
+ * ciao/Containers/Generic/Generic_Container.mpc:
+
+ * ciao/Contexts/Generic:
+
+ * ciao/Contexts/Generic/Generic_Context_T.h:
+ * ciao/Contexts/Generic/Generic_Context_T.cpp:
+
+ * ciao/Servants/Generic:
+
+ * ciao/Servants/Generic/Servant_Impl_T.h:
+ * ciao/Servants/Generic/Servant_Impl_T.cpp:
+
+ Fixed Compilations issues
+
Wed Jun 29 19:19:02 UTC 2011 Akshay V. Dabholkar <aky@dre.vanderbilt.edu>
* MPC/config/ccm_generic_stub.mpb:
diff --git a/CIAO/MPC/config/ccm_generic_stub.mpb b/CIAO/MPC/config/ccm_generic_stub.mpb
index 08ebb3deb5d..273da72c805 100644
--- a/CIAO/MPC/config/ccm_generic_stub.mpb
+++ b/CIAO/MPC/config/ccm_generic_stub.mpb
@@ -2,6 +2,6 @@
// $Id$
project : ccm_stub {
- after += CCM_lem_stub CCM_extension_stub
- libs += CCM_lem_stub CCM_extension_stub
+ after += CCM_lem_stub CCM_generic_stub
+ libs += CCM_lem_stub CCM_generic_stub
}
diff --git a/CIAO/MPC/config/ciao_generic_container.mpb b/CIAO/MPC/config/ciao_generic_container.mpb
index 9deacd8a8b0..9d41c40d025 100644
--- a/CIAO/MPC/config/ciao_generic_container.mpb
+++ b/CIAO/MPC/config/ciao_generic_container.mpb
@@ -3,7 +3,7 @@
project : utils, ciao_servant, \
ciao_port_activator_stub, ciao_servant_activator_stub, \
- ciao_extension_container_stub {
- libs += CIAO_Extension_Container
- after += CIAO_Extension_Container
+ ciao_generic_container_stub {
+ libs += CIAO_Generic_Container
+ after += CIAO_Generic_Container
}
diff --git a/CIAO/MPC/config/ciao_generic_container_stub.mpb b/CIAO/MPC/config/ciao_generic_container_stub.mpb
index 28b1fa64649..bb4455fe923 100644
--- a/CIAO/MPC/config/ciao_generic_container_stub.mpb
+++ b/CIAO/MPC/config/ciao_generic_container_stub.mpb
@@ -2,6 +2,6 @@
// $Id$
project : ciao_port_activator_stub, ciao_servant_activator_stub, ciao_container_base_stub {
- libs += CIAO_Extension_Container_stub
- after += CIAO_Extension_Container_stub
+ libs += CIAO_Generic_Container_stub
+ after += CIAO_Generic_Container_stub
}
diff --git a/CIAO/ccm/Generic/CCM_ClientContainerInterceptor.idl b/CIAO/ccm/Generic/CCM_ClientContainerInterceptor.idl
new file mode 100644
index 00000000000..8ea6e34ad28
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_ClientContainerInterceptor.idl
@@ -0,0 +1,27 @@
+// $Id$
+
+#if !defined (CCM_CLIENTCONTAINERINTERCEPTOR_IDL)
+#define CCM_CLIENTCONTAINERINTERCEPTOR_IDL
+
+#include "ccm/Generic/CCM_ContainerInterceptor.idl"
+#include "ccm/Generic/CCM_ContainerClientRequestInfo.idl"
+#include "tao/PI/PIForwardRequest.pidl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface ClientContainerInterceptor : ContainerInterceptor
+ {
+ void send_request (in ContainerClientRequestInfo info)
+ raises (PortableInterceptor::ForwardRequest);
+ void send_poll (in ContainerClientRequestInfo info);
+ void receive_reply (in ContainerClientRequestInfo info);
+ void receive_exception (in ContainerClientRequestInfo info)
+ raises (PortableInterceptor::ForwardRequest);
+ void receive_other (in ContainerClientRequestInfo info)
+ raises (PortableInterceptor::ForwardRequest);
+ };
+ };
+};
+#endif /* CCM_CLIENTCONTAINERINTERCEPTOR_IDL */
diff --git a/CIAO/ccm/Generic/CCM_ClientContainerInterceptorRegistration.idl b/CIAO/ccm/Generic/CCM_ClientContainerInterceptorRegistration.idl
new file mode 100644
index 00000000000..f4d2f6e8bf1
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_ClientContainerInterceptorRegistration.idl
@@ -0,0 +1,24 @@
+// $Id$
+
+#if !defined (CCM_CLIENTCONTAINERINTERCEPTORREGISTRATION_IDL)
+#define CCM_CLIENTCONTAINERINTERCEPTORREGISTRATION_IDL
+
+#include "ccm/CCM_Cookie.idl"
+#include "ccm/Generic/CCM_InvalidRegistration.idl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface ClientContainerInterceptor;
+
+ local interface ClientContainerInterceptorRegistration
+ {
+ Components::Cookie register_client_interceptor (in ClientContainerInterceptor ci);
+ ClientContainerInterceptor unregister_client_interceptor (in Components::Cookie cookie)
+ raises(InvalidRegistration);
+ };
+ };
+};
+
+#endif /* CCM_CLIENTCONTAINERINTERCEPTORREGISTRATION_IDL */
diff --git a/CIAO/ccm/Generic/CCM_ContainerClientRequestInfo.idl b/CIAO/ccm/Generic/CCM_ContainerClientRequestInfo.idl
new file mode 100644
index 00000000000..7b677410e1a
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_ContainerClientRequestInfo.idl
@@ -0,0 +1,20 @@
+// $Id$
+
+#if !defined (CCM_CONTAINERCLIENTREQUESTINFO_IDL)
+#define CCM_CONTAINERCLIENTREQUESTINFO_IDL
+
+#include "ccm/Generic/CCM_ContainerRequestInfo.idl"
+#include "tao/PI/PI_include.pidl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface ContainerClientRequestInfo : ContainerRequestInfo
+ {
+ PortableInterceptor::ClientRequestInfo request_info();
+ };
+ };
+};
+
+#endif /* CCM_CONTAINERCLIENTREQUESTINFO_IDL */
diff --git a/CIAO/ccm/Generic/CCM_ContainerInterceptor.idl b/CIAO/ccm/Generic/CCM_ContainerInterceptor.idl
new file mode 100644
index 00000000000..eb93d525423
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_ContainerInterceptor.idl
@@ -0,0 +1,24 @@
+// $Id$
+
+#if !defined (CCM_CONTAINERPORTABLEINTERCEPTOR_IDL)
+#define CCM_CONTAINERPORTABLEINTERCEPTOR_IDL
+
+#include "tao/PI_Forward.pidl"
+
+module Components {
+
+ module ContainerPortableInterceptor {
+
+ local interface ContainerInterceptor
+ {
+ readonly attribute string name;
+
+ attribute unsigned short priority;
+
+ void destroy ();
+ void set_slot_id(in PortableInterceptor::SlotId slot_id);
+ };
+ };
+};
+
+#endif /* CCM_CONTAINERPORTABLEINTERCEPTOR_IDL */
diff --git a/CIAO/ccm/Generic/CCM_ContainerRequestInfo.idl b/CIAO/ccm/Generic/CCM_ContainerRequestInfo.idl
new file mode 100644
index 00000000000..e999c3153af
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_ContainerRequestInfo.idl
@@ -0,0 +1,22 @@
+// $Id$
+
+#if !defined (CCM_CONTAINERREQUESTINFO_IDL)
+#define CCM_CONTAINERREQUESTINFO_IDL
+
+#include "ccm/CCM_Navigation.idl"
+#include "tao/OctetSeq.pidl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface ContainerRequestInfo
+ {
+ readonly attribute CORBA::OctetSeq origin_id;
+ readonly attribute CORBA::OctetSeq target_id;
+ readonly attribute FeatureName name;
+ };
+ };
+};
+
+#endif /* CCM_CONTAINERREQUESTINFO_IDL */
diff --git a/CIAO/ccm/Generic/CCM_ContainerServantRequestInfo.idl b/CIAO/ccm/Generic/CCM_ContainerServantRequestInfo.idl
new file mode 100644
index 00000000000..527d1d929dd
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_ContainerServantRequestInfo.idl
@@ -0,0 +1,25 @@
+// $Id$
+
+#if !defined (CCM_CONTAINERSERVANTREQUESTINFO_IDL)
+#define CCM_CONTAINERSERVANTREQUESTINFO_IDL
+
+#include "ccm/Generic/CCM_ContainerRequestInfo.idl"
+#include "ccm/CCM_EnterpriseComponent.idl"
+#include "tao/AnyTypeCode/Dynamic.pidl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface ContainerServantRequestInfo : ContainerRequestInfo
+ {
+ attribute Dynamic::ParameterList arguments;
+ readonly attribute string operation;
+ attribute any result;
+ attribute Components::EnterpriseComponent target;
+ attribute any the_exception;
+ };
+ };
+};
+
+#endif /* CCM_CONTAINERSERVANTREQUESTINFO_IDL */
diff --git a/CIAO/ccm/Generic/CCM_ContainerServerRequestInfo.idl b/CIAO/ccm/Generic/CCM_ContainerServerRequestInfo.idl
new file mode 100644
index 00000000000..b8ff0257c3c
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_ContainerServerRequestInfo.idl
@@ -0,0 +1,20 @@
+// $Id$
+
+#if !defined (CCM_CONTAINERSERVERREQUESTINFO_IDL)
+#define CCM_CONTAINERSERVERREQUESTINFO_IDL
+
+#include "ccm/Generic/CCM_ContainerRequestInfo.idl"
+#include "tao/PI_Server/ServerRequestInfo.pidl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface ContainerServerRequestInfo : ContainerRequestInfo
+ {
+ PortableInterceptor::ServerRequestInfo request_info();
+ };
+ };
+};
+
+#endif /* CCM_CONTAINERSERVERREQUESTINFO_IDL */
diff --git a/CIAO/ccm/Generic/CCM_ContainerStubRequestInfo.idl b/CIAO/ccm/Generic/CCM_ContainerStubRequestInfo.idl
new file mode 100644
index 00000000000..d23c610bda6
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_ContainerStubRequestInfo.idl
@@ -0,0 +1,24 @@
+// $Id$
+
+#if !defined (CCM_CONTAINERSTUBREQUESTINFO_IDL)
+#define CCM_CONTAINERSTUBREQUESTINFO_IDL
+
+#include "ccm/Generic/CCM_ContainerRequestInfo.idl"
+#include "tao/AnyTypeCode/Dynamic.pidl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface ContainerStubRequestInfo : ContainerRequestInfo
+ {
+ attribute Dynamic::ParameterList arguments;
+ readonly attribute string operation;
+ attribute any result;
+ attribute Object target;
+ attribute any the_exception;
+ };
+ };
+};
+
+#endif /* CCM_CONTAINERSTUBREQUESTINFO_IDL */
diff --git a/CIAO/ccm/Generic/CCM_Generic.mpc b/CIAO/ccm/Generic/CCM_Generic.mpc
new file mode 100644
index 00000000000..8c2871edd97
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_Generic.mpc
@@ -0,0 +1,122 @@
+// $Id$
+
+project(CCM_generic_stub_idl) : install, ciaolib_with_idl {
+ idlflags += -Wb,stub_export_include=CCM_Generic_Stub_Export.h \
+ -Wb,stub_export_macro=CCM_GENERIC_STUB_Export \
+ -Wb,skel_export_include=CCM_Generic_Skel_Export.h \
+ -Wb,skel_export_macro=CCM_GENERIC_SKEL_Export
+ custom_only = 1
+
+ IDL_Files {
+ idlflags += -Gxhst -Gxhsk -SS -Sci
+ CCM_GenericContext.idl
+ }
+
+ IDL_Files {
+ idlflags += -SS -Sci
+ CCM_ClientContainerInterceptorRegistration.idl
+ CCM_ClientContainerInterceptor.idl
+ CCM_ContainerInterceptor.idl
+ CCM_ContainerServerRequestInfo.idl
+ CCM_ServantContainerInterceptor.idl
+ CCM_ServerContainerInterceptorRegistration.idl
+ CCM_ContainerRequestInfo.idl
+ CCM_ContainerStubRequestInfo.idl
+ CCM_InvalidRegistration.idl
+ CCM_ServantContainerInterceptorRegistration.idl
+ CCM_StubContainerInterceptor.idl
+ CCM_ContainerClientRequestInfo.idl
+ CCM_ContainerServantRequestInfo.idl
+ CCM_GenericComponent.idl
+ CCM_ServerContainerInterceptor.idl
+ CCM_StubContainerInterceptorRegistration.idl
+ }
+
+ IDL_Files {
+ idlflags += -Ssi
+ CCM_QoS.idl
+ }
+
+ specific {
+ install_dir = ccm/Generic
+ }
+}
+
+project(CCM_generic_stub) : install, ciaolib_with_idl, ciao_output, ccm_lem_stub, pi_server {
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+ dynamicflags += CCM_GENERIC_STUB_BUILD_DLL
+ after += CCM_generic_stub_idl CCM_lem_stub
+ libs += CCM_lem_stub
+ IDL_Files {
+ }
+
+ Header_Files {
+ CCM_Generic_Stub_Export.h
+ CCM_ClientContainerInterceptorC.h
+ CCM_ContainerInterceptorC.h
+ CCM_ContainerServerRequestInfoC.h
+ CCM_GenericContextC.h
+ CCM_ServantContainerInterceptorC.h
+ CCM_ServerContainerInterceptorRegistrationC.h
+ CCM_ClientContainerInterceptorRegistrationC.h
+ CCM_ContainerRequestInfoC.h
+ CCM_ContainerStubRequestInfoC.h
+ CCM_InvalidRegistrationC.h
+ CCM_ServantContainerInterceptorRegistrationC.h
+ CCM_StubContainerInterceptorC.h
+ CCM_ContainerClientRequestInfoC.h
+ CCM_ContainerServantRequestInfoC.h
+ CCM_GenericComponentC.h
+ CCM_QoSC.h
+ CCM_ServerContainerInterceptorC.h
+ CCM_StubContainerInterceptorRegistrationC.h
+ }
+
+ Inline_Files {
+ CCM_QoSC.inl
+ }
+
+ Source_Files {
+ CCM_ClientContainerInterceptorC.cpp
+ CCM_ContainerInterceptorC.cpp
+ CCM_ContainerServerRequestInfoC.cpp
+ CCM_GenericContextC.cpp
+ CCM_ServantContainerInterceptorC.cpp
+ CCM_ServerContainerInterceptorRegistrationC.cpp
+ CCM_ClientContainerInterceptorRegistrationC.cpp
+ CCM_ContainerRequestInfoC.cpp
+ CCM_ContainerStubRequestInfoC.cpp
+ CCM_InvalidRegistrationC.cpp
+ CCM_ServantContainerInterceptorRegistrationC.cpp
+ CCM_StubContainerInterceptorC.cpp
+ CCM_ContainerClientRequestInfoC.cpp
+ CCM_ContainerServantRequestInfoC.cpp
+ CCM_GenericComponentC.cpp
+ CCM_QoSC.cpp
+ CCM_ServerContainerInterceptorC.cpp
+ CCM_StubContainerInterceptorRegistrationC.cpp
+ }
+
+ specific {
+ install_dir = ccm/Generic
+ }
+}
+
+project(CCM_generic_skel) : install, ciaolib_with_idl, ciao_output, valuetype, ifr_client, ccm_lem_stub, ccm_generic_stub, portableserver {
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+ dynamicflags += CCM_GENERIC_SKEL_BUILD_DLL
+ after += CCM_generic_stub_idl
+ IDL_Files {
+ }
+ Source_Files {
+ CCM_QoSS.cpp
+ }
+ Header_Files {
+ CCM_QoSS.h
+ }
+ specific {
+ install_dir = ccm/Generic
+ }
+}
diff --git a/CIAO/ccm/Generic/CCM_GenericComponent.idl b/CIAO/ccm/Generic/CCM_GenericComponent.idl
new file mode 100644
index 00000000000..fef193b193a
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_GenericComponent.idl
@@ -0,0 +1,20 @@
+// $Id$
+
+#if !defined (CCM_GENERICCOMPONENT_IDL)
+#define CCM_GENERICCOMPONENT_IDL
+
+#include "ccm/CCM_EnterpriseComponent.idl"
+#include "ccm/Generic/CCM_GenericContext.idl"
+
+module Components
+{
+ local interface GenericComponent : EnterpriseComponent
+ {
+ void set_generic_context (in GenericContext ctx)
+ raises (CCMException);
+ void ccm_remove ()
+ raises (CCMException);
+ };
+};
+
+#endif /* CCM_GENERICCOMPONENT_IDL */
diff --git a/CIAO/ccm/Generic/CCM_GenericContext.idl b/CIAO/ccm/Generic/CCM_GenericContext.idl
new file mode 100644
index 00000000000..41ca04fe033
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_GenericContext.idl
@@ -0,0 +1,37 @@
+// $Id$
+
+#if !defined (CCM_GENERICCONTEXT_IDL)
+#define CCM_GENERICCONTEXT_IDL
+
+#include "ccm/CCM_Context.idl"
+#include "ccm/Generic/CCM_ClientContainerInterceptorRegistration.idl"
+#include "ccm/Generic/CCM_ServerContainerInterceptorRegistration.idl"
+#include "ccm/Generic/CCM_StubContainerInterceptorRegistration.idl"
+#include "ccm/Generic/CCM_ServantContainerInterceptorRegistration.idl"
+#include "ccm/CCM_CCMException.idl"
+
+module Components
+{
+ local interface GenericContext : CCMContext
+ {
+ Components::ContainerPortableInterceptor::ClientContainerInterceptorRegistration
+ get_client_interceptor_registration ()
+ raises (CCMException);
+ Components::ContainerPortableInterceptor::ServerContainerInterceptorRegistration
+ get_server_interceptor_registration ()
+ raises (CCMException);
+ Components::ContainerPortableInterceptor::StubContainerInterceptorRegistration
+ get_stub_interceptor_registration()
+ raises (CCMException);
+ Components::ContainerPortableInterceptor::ServantContainerInterceptorRegistration
+ get_servant_interceptor_registration()
+ raises (CCMException);
+
+ Cookie install_service_reference(in string service_id, in Object objref)
+ raises (CCMException);
+ Object uninstall_service_reference(in Cookie ck)
+ raises (CCMException);
+ };
+};
+
+#endif /* CCM_GENERICCONTEXT_IDL */
diff --git a/CIAO/ccm/Generic/CCM_InvalidRegistration.idl b/CIAO/ccm/Generic/CCM_InvalidRegistration.idl
new file mode 100644
index 00000000000..a5dc36c640e
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_InvalidRegistration.idl
@@ -0,0 +1,14 @@
+// $Id$
+
+#if !defined (CCM_INVALIDREGISTRATION_IDL)
+#define CCM_INVALIDREGISTRATION_IDL
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ exception InvalidRegistration { };
+ };
+};
+
+#endif /* CCM_INVALIDREGISTRATION_IDL */
diff --git a/CIAO/ccm/Generic/CCM_QoS.idl b/CIAO/ccm/Generic/CCM_QoS.idl
new file mode 100644
index 00000000000..fd654f50377
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_QoS.idl
@@ -0,0 +1,31 @@
+// $Id$
+
+#if !defined (CCM_QOS_IDL)
+#define CCM_QOS_IDL
+
+#include "ccm/CCM_Cookie.idl"
+#include "ccm/CCM_CCMException.idl"
+
+module Components
+{
+ module QoS {
+ struct QoSInstance {
+ string dimension;
+ any value;
+ };
+ typedef sequence<QoSInstance> QoSInstances;
+ struct QoSConstraint {
+ string characteristic;
+ QoSInstances instances;
+ };
+ typedef sequence<QoSConstraint> QoSConstraints;
+ interface Negotiation
+ {
+ Components::Cookie require_qos(in QoSConstraint requirements, in string client_id)
+ raises (CCMException);
+ void release_qos (in Components::Cookie ck);
+ };
+ };
+};
+
+#endif /* CCM_QOS_IDL */
diff --git a/CIAO/ccm/Generic/CCM_ServantContainerInterceptor.idl b/CIAO/ccm/Generic/CCM_ServantContainerInterceptor.idl
new file mode 100644
index 00000000000..82a1036e418
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_ServantContainerInterceptor.idl
@@ -0,0 +1,26 @@
+// $Id$
+
+#if !defined (CCM_SERVANTCONTAINERINTERCEPTOR_IDL)
+#define CCM_SERVANTCONTAINERINTERCEPTOR_IDL
+
+#include "ccm/Generic/CCM_ContainerInterceptor.idl"
+#include "ccm/Generic/CCM_ContainerServantRequestInfo.idl"
+#include "tao/PI/PI_include.pidl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface ServantContainerInterceptor : ContainerInterceptor
+ {
+ void servant_receive_request (in ContainerServantRequestInfo info, out boolean proceed_call)
+ raises (PortableInterceptor::ForwardRequest);
+ void servant_send_reply (in ContainerServantRequestInfo info, out boolean proceed_call);
+ void servant_send_exception (in ContainerServantRequestInfo info, out boolean proceed_call)
+ raises (PortableInterceptor::ForwardRequest);
+ void servant_send_other (in ContainerServantRequestInfo info)
+ raises (PortableInterceptor::ForwardRequest);
+ };
+ };
+};
+#endif /* CCM_SERVANTCONTAINERINTERCEPTOR_IDL */
diff --git a/CIAO/ccm/Generic/CCM_ServantContainerInterceptorRegistration.idl b/CIAO/ccm/Generic/CCM_ServantContainerInterceptorRegistration.idl
new file mode 100644
index 00000000000..070ccc55875
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_ServantContainerInterceptorRegistration.idl
@@ -0,0 +1,24 @@
+// $Id$
+
+#if !defined (CCM_SERVANTCONTAINERINTERCEPTORREGISTRATION_IDL)
+#define CCM_SERVANTCONTAINERINTERCEPTORREGISTRATION_IDL
+
+#include "ccm/CCM_Cookie.idl"
+#include "ccm/Generic/CCM_InvalidRegistration.idl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface ServantContainerInterceptor;
+
+ local interface ServantContainerInterceptorRegistration
+ {
+ Components::Cookie register_servant_interceptor (in ServantContainerInterceptor ci);
+ ServantContainerInterceptor unregister_servant_interceptor (in Components::Cookie cookie)
+ raises(InvalidRegistration);
+ };
+ };
+};
+
+#endif /* CCM_SERVANTCONTAINERINTERCEPTORREGISTRATION_IDL */
diff --git a/CIAO/ccm/Generic/CCM_ServerContainerInterceptor.idl b/CIAO/ccm/Generic/CCM_ServerContainerInterceptor.idl
new file mode 100644
index 00000000000..c51077ff8f3
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_ServerContainerInterceptor.idl
@@ -0,0 +1,28 @@
+// $Id$
+
+#if !defined (CCM_SERVERCONTAINERINTERCEPTOR_IDL)
+#define CCM_SERVERCONTAINERINTERCEPTOR_IDL
+
+#include "ccm/Generic/CCM_ContainerInterceptor.idl"
+#include "ccm/Generic/CCM_ContainerServerRequestInfo.idl"
+#include "tao/PI/PIForwardRequest.pidl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface ServerContainerInterceptor : ContainerInterceptor
+ {
+ void receive_request_service_contexts (in ContainerServerRequestInfo info)
+ raises (PortableInterceptor::ForwardRequest);
+ void receive_request (in ContainerServerRequestInfo info)
+ raises (PortableInterceptor::ForwardRequest);
+ void send_reply (in ContainerServerRequestInfo info);
+ void send_exception (in ContainerServerRequestInfo info)
+ raises (PortableInterceptor::ForwardRequest);
+ void send_other (in ContainerServerRequestInfo info)
+ raises (PortableInterceptor::ForwardRequest);
+ };
+ };
+};
+#endif /* CCM_SERVERCONTAINERINTERCEPTOR_IDL */
diff --git a/CIAO/ccm/Generic/CCM_ServerContainerInterceptorRegistration.idl b/CIAO/ccm/Generic/CCM_ServerContainerInterceptorRegistration.idl
new file mode 100644
index 00000000000..494915d2c14
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_ServerContainerInterceptorRegistration.idl
@@ -0,0 +1,24 @@
+// $Id$
+
+#if !defined (CCM_SERVERCONTAINERINTERCEPTORREGISTRATION_IDL)
+#define CCM_SERVERCONTAINERINTERCEPTORREGISTRATION_IDL
+
+#include "ccm/CCM_Cookie.idl"
+#include "ccm/Generic/CCM_InvalidRegistration.idl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface ServerContainerInterceptor;
+
+ local interface ServerContainerInterceptorRegistration
+ {
+ Components::Cookie register_server_interceptor (in ServerContainerInterceptor ci);
+ ServerContainerInterceptor unregister_server_interceptor (in Components::Cookie cookie)
+ raises(InvalidRegistration);
+ };
+ };
+};
+
+#endif /* CCM_SERVERCONTAINERINTERCEPTORREGISTRATION_IDL */
diff --git a/CIAO/ccm/Generic/CCM_StubContainerInterceptor.idl b/CIAO/ccm/Generic/CCM_StubContainerInterceptor.idl
new file mode 100644
index 00000000000..80a9a5fd571
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_StubContainerInterceptor.idl
@@ -0,0 +1,26 @@
+// $Id$
+
+#if !defined (CCM_STUBCONTAINERINTERCEPTOR_IDL)
+#define CCM_STUBCONTAINERINTERCEPTOR_IDL
+
+#include "ccm/Generic/CCM_ContainerInterceptor.idl"
+#include "ccm/Generic/CCM_ContainerStubRequestInfo.idl"
+#include "tao/PI/PI_include.pidl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface StubContainerInterceptor : ContainerInterceptor
+ {
+ void stub_send_request (in ContainerStubRequestInfo info, out boolean con)
+ raises (PortableInterceptor::ForwardRequest);
+ void stub_receive_reply (in ContainerStubRequestInfo info, out boolean con);
+ void stub_receive_exception (in ContainerStubRequestInfo info, out boolean con)
+ raises(PortableInterceptor::ForwardRequest);
+ void stub_receive_other (in ContainerStubRequestInfo info)
+ raises(PortableInterceptor::ForwardRequest);
+ };
+ };
+};
+#endif /* CCM_STUBCONTAINERINTERCEPTOR_IDL */
diff --git a/CIAO/ccm/Generic/CCM_StubContainerInterceptorRegistration.idl b/CIAO/ccm/Generic/CCM_StubContainerInterceptorRegistration.idl
new file mode 100644
index 00000000000..8ee2eca376e
--- /dev/null
+++ b/CIAO/ccm/Generic/CCM_StubContainerInterceptorRegistration.idl
@@ -0,0 +1,24 @@
+// $Id$
+
+#if !defined (CCM_STUBCONTAINERINTERCEPTORREGISTRATION_IDL)
+#define CCM_STUBCONTAINERINTERCEPTORREGISTRATION_IDL
+
+#include "ccm/CCM_Cookie.idl"
+#include "ccm/Generic/CCM_InvalidRegistration.idl"
+
+module Components
+{
+ module ContainerPortableInterceptor
+ {
+ local interface StubContainerInterceptor;
+
+ local interface StubContainerInterceptorRegistration
+ {
+ Components::Cookie register_stub_interceptor (in StubContainerInterceptor ci);
+ StubContainerInterceptor unregister_stub_interceptor (in Components::Cookie cookie)
+ raises(InvalidRegistration);
+ };
+ };
+};
+
+#endif /* CCM_STUBCONTAINERINTERCEPTORREGISTRATION_IDL */
diff --git a/CIAO/ciao/Containers/Generic/Generic_Container.mpc b/CIAO/ciao/Containers/Generic/Generic_Container.mpc
index 271169ecfc9..6f50db94270 100644
--- a/CIAO/ciao/Containers/Generic/Generic_Container.mpc
+++ b/CIAO/ciao/Containers/Generic/Generic_Container.mpc
@@ -41,7 +41,7 @@ project(CIAO_Generic_Container_stub) : install, ccm_stub, ciao_lib, ciao_contain
project(CIAO_Generic_Container) : install, ccm_svnt, ciao_lib, ciao_generic_container_stub, utils, \
ciao_base, ciao_servant_activator, \
ciao_servant, ccm_generic_stub, portableserver {
- after += CIAO_Generic_Container_idl
+ after += CIAO_Generic_Container_stub
dynamicflags += GENERIC_CONTAINER_BUILD_DLL
IDL_Files {
diff --git a/CIAO/ciao/Contexts/Generic/Generic_Context_T.cpp b/CIAO/ciao/Contexts/Generic/Generic_Context_T.cpp
new file mode 100644
index 00000000000..217b507c460
--- /dev/null
+++ b/CIAO/ciao/Contexts/Generic/Generic_Context_T.cpp
@@ -0,0 +1,80 @@
+// $Id$
+
+#ifndef CIAO_GENERIC_CONTEXT_IMPL_T_C
+#define CIAO_GENERIC_CONTEXT_IMPL_T_C
+
+namespace CIAO
+{
+ template <typename BASE_CTX,
+ typename COMP>
+ Generic_Context_Impl<BASE_CTX, COMP>::Generic_Context_Impl (
+ Components::CCMHome_ptr the_home,
+ ::CIAO::Generic_Container_ptr c,
+ PortableServer::Servant sv,
+ const char* id)
+ : Context_Impl_Base_T < ::CIAO::Generic_Container> (the_home, c, id),
+ servant_ (sv)
+ {
+ }
+
+ template <typename BASE_CTX,
+ typename COMP>
+ Generic_Context_Impl<BASE_CTX, COMP>::~Generic_Context_Impl (void)
+ {
+ }
+
+ template <typename BASE_CTX,
+ typename COMP>
+ ::Components::ContainerPortableInterceptor::ClientContainerInterceptorRegistration_ptr
+ Generic_Context_Impl<BASE_CTX, COMP>::get_client_interceptor_registration (void)
+ {
+ return this->container_->get_client_interceptor_registration ();
+ }
+
+ template <typename BASE_CTX,
+ typename COMP>
+ ::Components::ContainerPortableInterceptor::ServantContainerInterceptorRegistration_ptr
+ Generic_Context_Impl<BASE_CTX, COMP>::get_servant_interceptor_registration (void)
+ {
+ return this->container_->get_servant_interceptor_registration ();
+ }
+
+ template <typename BASE_CTX,
+ typename COMP>
+ ::Components::ContainerPortableInterceptor::ServerContainerInterceptorRegistration_ptr
+ Generic_Context_Impl<BASE_CTX, COMP>::get_server_interceptor_registration (void)
+ {
+ return this->container_->get_server_interceptor_registration ();
+ }
+
+ template <typename BASE_CTX,
+ typename COMP>
+ ::Components::ContainerPortableInterceptor::StubContainerInterceptorRegistration_ptr
+ Generic_Context_Impl<BASE_CTX, COMP>::get_stub_interceptor_registration (void)
+ {
+ return this->container_->get_stub_interceptor_registration ();
+ }
+
+ template <typename BASE_CTX,
+ typename COMP>
+ ::Components::Cookie *
+ Generic_Context_Impl<BASE_CTX, COMP>::install_service_reference (
+ const char * service_id,
+ ::CORBA::Object_ptr objref)
+ {
+ return this->container_->install_service_reference (service_id,
+ objref);
+ }
+
+ template <typename BASE_CTX,
+ typename COMP>
+ ::CORBA::Object_ptr
+ Generic_Context_Impl<BASE_CTX, COMP>::uninstall_service_reference (
+ ::Components::Cookie * ck)
+ {
+ return this->container_->uninstall_service_reference (ck);
+ }
+}
+
+#endif /* CIAO_GENERIC_CONTEXT_IMPL_T_C */
+
diff --git a/CIAO/ciao/Contexts/Generic/Generic_Context_T.h b/CIAO/ciao/Contexts/Generic/Generic_Context_T.h
new file mode 100644
index 00000000000..f6d56ce58ee
--- /dev/null
+++ b/CIAO/ciao/Contexts/Generic/Generic_Context_T.h
@@ -0,0 +1,89 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Generic_Context_T.h
+ *
+ * $Id$
+ *
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ */
+//=============================================================================
+
+
+#ifndef CIAO_GENERICCONTEXT_H
+#define CIAO_GENERICCONTEXT_H
+
+#include /**/ "ace/pre.h"
+
+#include "ciao/Contexts/Context_Impl_Base_T.h"
+#include "ciao/Containers/Generic/Generic_ContainerC.h"
+#include "tao/LocalObject.h"
+#include "tao/PortableServer/PS_ForwardC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace CIAO
+{
+ template <typename BASE_CTX,
+ typename COMP>
+ class Generic_Context_Impl
+ : public virtual BASE_CTX,
+ public virtual ::CIAO::Context_Impl_Base_T < ::CIAO::Generic_Container>,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Type definition of the context type.
+ typedef BASE_CTX context_type;
+
+ /// Type definition of the var type for the context.
+ typedef typename context_type::_var_type _var_type;
+
+ /// Type definition of the component type.
+ typedef COMP component_type;
+
+ Generic_Context_Impl(Components::CCMHome_ptr home,
+ ::CIAO::Generic_Container_ptr c,
+ PortableServer::Servant sv,
+ const char* id);
+
+ virtual ~Generic_Context_Impl (void);
+
+ virtual ::Components::ContainerPortableInterceptor::ClientContainerInterceptorRegistration_ptr
+ get_client_interceptor_registration (void);
+
+ virtual ::Components::ContainerPortableInterceptor::ServantContainerInterceptorRegistration_ptr
+ get_servant_interceptor_registration (void);
+
+ virtual ::Components::ContainerPortableInterceptor::ServerContainerInterceptorRegistration_ptr
+ get_server_interceptor_registration (void);
+
+ virtual ::Components::ContainerPortableInterceptor::StubContainerInterceptorRegistration_ptr
+ get_stub_interceptor_registration (void);
+
+ virtual ::Components::Cookie * install_service_reference (
+ const char * service_id,
+ ::CORBA::Object_ptr objref);
+
+ virtual ::CORBA::Object_ptr uninstall_service_reference (
+ ::Components::Cookie * ck);
+
+ private:
+ PortableServer::Servant servant_;
+ typename COMP::_var_type component_;
+ };
+}
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ciao/Contexts/Generic/Generic_Context_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("ciao/Contexts/Generic/Generic_Context_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_GENERICCONTEXT_H */
diff --git a/CIAO/ciao/Servants/Generic/Servant_Impl_T.cpp b/CIAO/ciao/Servants/Generic/Servant_Impl_T.cpp
new file mode 100644
index 00000000000..b5980b5c93a
--- /dev/null
+++ b/CIAO/ciao/Servants/Generic/Servant_Impl_T.cpp
@@ -0,0 +1,201 @@
+// $Id$
+
+#ifndef CIAO_SERVANT_IMPL_T_C
+#define CIAO_SERVANT_IMPL_T_C
+
+namespace CIAO
+{
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ Generic_Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::Generic_Servant_Impl (
+ EXEC * exe,
+ Components::CCMHome_ptr home,
+ const char * ins_name,
+ Home_Servant_Impl_Base *home_servant,
+ ::CIAO::Generic_Container_ptr c)
+ : CONTEXT::svnt_base_type (home, home_servant, c),
+ activated_ (false),
+ configuration_completed_ (false),
+ executor_ (EXEC::_duplicate (exe)),
+ context_ (0),
+ ins_name_ (ins_name)
+ {
+ ACE_NEW (this->context_,
+ CONTEXT (home, c, this, ins_name));
+
+ ::Components::GenericComponent_var scom =
+ ::Components::GenericComponent::_narrow (exe);
+
+ if (! ::CORBA::is_nil (scom.in ()))
+ {
+ scom->set_generic_context (this->context_);
+ }
+ else
+ {
+ CIAO_DEBUG (6,
+ (LM_DEBUG, CLINFO
+ "Generic_Servant_Impl_T::Generic_Servant_Impl_T - "
+ "Couldn't set session context for %C\n",
+ ins_name));
+ }
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ Generic_Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::~Generic_Servant_Impl (void)
+ {
+ if (this->executor_->_refcount_value () > 1)
+ {
+ CIAO_ERROR (1,
+ (LM_ERROR, CLINFO
+ "Generic_Servant_Impl_T::~Generic_Servant_Impl_T - "
+ "Executor object reference count is %u\n",
+ this->executor_->_refcount_value ()));
+ }
+
+ this->context_->_remove_ref ();
+ }
+
+ // Operations for CCMObject interface.
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ CORBA::Boolean
+ Generic_Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::same_component (
+ CORBA::Object_ptr object_ref)
+ {
+ if (::CORBA::is_nil (object_ref))
+ {
+ throw ::CORBA::BAD_PARAM ();
+ }
+
+ ::CORBA::Object_var me; // @todo = this->context_->get_CCM_object ();
+
+ if (::CORBA::is_nil (me.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+
+ ::CORBA::Object_var the_other = object_ref->_get_component ();
+
+ return me->_is_equivalent (the_other.in ());
+
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ ::Components::CCMHome_ptr
+ Generic_Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::get_ccm_home (void)
+ {
+ return this->context_->get_CCM_home ();
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ Components::EnterpriseComponent_ptr
+ Generic_Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::get_executor (void)
+ {
+ return ::Components::EnterpriseComponent::_duplicate (this->executor_.in ());
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ CORBA::Object_ptr
+ Generic_Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::_get_component (void)
+ {
+ ::Components::GenericContext_var sc =
+ ::Components::GenericContext::_narrow (this->context_);
+
+ if (! ::CORBA::is_nil (sc.in ()))
+ {
+// @todo return sc->get_CCM_object ();
+ }
+
+ throw ::CORBA::INTERNAL ();
+ }
+
+ // CIAO-specific operations.
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ void
+ Generic_Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::activate_component (void)
+ {
+ if (this->configuration_completed_ && !this->activated_)
+ {
+ ::Components::GenericComponent_var temp =
+ ::Components::GenericComponent::_narrow (this->executor_.in ());
+
+ if (! ::CORBA::is_nil (temp.in ()))
+ {
+ // @todo temp->ccm_activate ();
+ this->activated_ = true;
+ }
+ }
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ void
+ Generic_Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::passivate_component (void)
+ {
+ if (this->activated_)
+ {
+ ::Components::GenericComponent_var temp =
+ ::Components::GenericComponent::_narrow (this->executor_.in ());
+
+ if (! ::CORBA::is_nil (temp.in ()))
+ {
+ // @todo temp->ccm_passivate ();
+ this->activated_ = false;
+ }
+ }
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ void
+ Generic_Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::configuration_complete (void)
+ {
+ if (!this->configuration_completed_)
+ {
+ ::Components::GenericComponent_var temp =
+ ::Components::GenericComponent::_narrow (this->executor_.in ());
+
+ if (! ::CORBA::is_nil (temp.in ()))
+ {
+ // @todo temp->configuration_complete ();
+ this->configuration_completed_ = true;
+ }
+ }
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ void
+ Generic_Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::ccm_remove (void)
+ {
+ ::Components::GenericComponent_var temp =
+ ::Components::GenericComponent::_narrow (this->executor_.in ());
+
+ if (! ::CORBA::is_nil (temp.in ()))
+ {
+ temp->ccm_remove ();
+ }
+ else
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+}
+
+#endif /* CIAO_SERVANT_IMPL_T_C */
diff --git a/CIAO/ciao/Servants/Generic/Servant_Impl_T.h b/CIAO/ciao/Servants/Generic/Servant_Impl_T.h
new file mode 100644
index 00000000000..0d19b76d22b
--- /dev/null
+++ b/CIAO/ciao/Servants/Generic/Servant_Impl_T.h
@@ -0,0 +1,98 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Servant_Impl_T.h
+ *
+ * $Id$
+ *
+ * This file contains the declaration of a mixin base class for
+ * the generated servant class.
+ *
+ * @authors Boris Kolpackov <boris@dre.vanderbilt.edu>
+ * Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_SERVANT_IMPL_T_H
+#define CIAO_SERVANT_IMPL_T_H
+
+#include /**/ "ace/pre.h"
+
+#include "ciao/Servants/Servant_Impl_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ccm/Generic/CCM_GenericComponentC.h"
+
+namespace CIAO
+{
+ /**
+ * @class Generic_Servant_Impl
+ *
+ * @brief Mixin base class for generated servant.
+ *
+ * This class implements navigation and other operations
+ * common to all generated servants.
+ */
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ class Generic_Servant_Impl :
+ public virtual BASE_SKEL,
+ public virtual CONTEXT::svnt_base_type
+ {
+ public:
+ Generic_Servant_Impl (EXEC * exe,
+ Components::CCMHome_ptr home,
+ const char * ins_name,
+ Home_Servant_Impl_Base *home_servant,
+ ::CIAO::Generic_Container_ptr c);
+
+ virtual ~Generic_Servant_Impl (void);
+
+ // Operations for CCMObject interface.
+
+ virtual CORBA::Boolean same_component (CORBA::Object_ptr object_ref);
+
+ virtual ::Components::CCMHome_ptr get_ccm_home ();
+
+ virtual CORBA::Object_ptr _get_component ();
+
+ virtual Components::EnterpriseComponent_ptr get_executor ();
+
+ void configuration_complete ();
+
+ virtual void activate_component ();
+
+ virtual void passivate_component ();
+
+ protected:
+ virtual void ccm_remove (void);
+
+ CORBA::Boolean activated_;
+ CORBA::Boolean configuration_completed_;
+
+ /// Initialized in this constructor.
+ typename EXEC::_var_type executor_;
+
+ /// Initialized in this constructor.
+ CONTEXT * context_;
+
+ const char * ins_name_;
+ };
+}
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ciao/Servants/Generic/Servant_Impl_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("ciao/Servants/Generic/Servant_Impl_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SERVANT_IMPL_T_H */