diff options
Diffstat (limited to 'TAO/tests/Portable_Interceptors/AMI/Server_Interceptor.cpp')
-rw-r--r-- | TAO/tests/Portable_Interceptors/AMI/Server_Interceptor.cpp | 98 |
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)) +{ +} |