summaryrefslogtreecommitdiff
path: root/TAO/tests/Portable_Interceptors/AMI/Server_Interceptor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/Portable_Interceptors/AMI/Server_Interceptor.cpp')
-rw-r--r--TAO/tests/Portable_Interceptors/AMI/Server_Interceptor.cpp98
1 files changed, 98 insertions, 0 deletions
diff --git a/TAO/tests/Portable_Interceptors/AMI/Server_Interceptor.cpp b/TAO/tests/Portable_Interceptors/AMI/Server_Interceptor.cpp
new file mode 100644
index 00000000000..0dd0365a6d7
--- /dev/null
+++ b/TAO/tests/Portable_Interceptors/AMI/Server_Interceptor.cpp
@@ -0,0 +1,98 @@
+/**
+ * @file Server_Interceptor.cpp
+ *
+ * $Id$
+ *
+ * @author Carlos O'Ryan <coryan@atdesk.com>
+ */
+
+#include "Server_Interceptor.h"
+#include "Shared_Interceptor.h"
+#include "tao/OctetSeqC.h"
+
+
+ACE_RCSID (AMI,
+ Server_Interceptor,
+ "$Id$")
+
+
+Echo_Server_Request_Interceptor::Echo_Server_Request_Interceptor (void)
+{
+}
+
+char *
+Echo_Server_Request_Interceptor::name (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return CORBA::string_dup ("Echo_Server_Interceptor");
+}
+
+void
+Echo_Server_Request_Interceptor::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+void
+Echo_Server_Request_Interceptor::receive_request_service_contexts (
+ PortableInterceptor::ServerRequestInfo_ptr ri
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::ForwardRequest))
+{
+ CORBA::String_var operation =
+ ri->operation (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ if (ACE_OS_String::strcmp ("_is_a", operation.in ()) == 0)
+ return;
+
+ IOP::ServiceId id = ::service_id;
+ IOP::ServiceContext_var sc =
+ ri->get_request_service_context (id ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ if (sc->context_data.length() != magic_cookie_len
+ || ACE_OS::memcmp(
+ magic_cookie, sc->context_data.get_buffer(),
+ magic_cookie_len) != 0)
+ {
+ ACE_THROW(CORBA::BAD_PARAM());
+ }
+}
+
+
+void
+Echo_Server_Request_Interceptor::receive_request (
+ PortableInterceptor::ServerRequestInfo_ptr
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::ForwardRequest))
+{
+}
+
+void
+Echo_Server_Request_Interceptor::send_reply (
+ PortableInterceptor::ServerRequestInfo_ptr
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+void
+Echo_Server_Request_Interceptor::send_exception (
+ PortableInterceptor::ServerRequestInfo_ptr
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::ForwardRequest))
+{
+}
+
+void
+Echo_Server_Request_Interceptor::send_other (
+ PortableInterceptor::ServerRequestInfo_ptr
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::ForwardRequest))
+{
+}