diff options
Diffstat (limited to 'TAO/orbsvcs/tests/Bug_2248_Regression/Server_ORBInitializer.cpp')
-rw-r--r-- | TAO/orbsvcs/tests/Bug_2248_Regression/Server_ORBInitializer.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/Bug_2248_Regression/Server_ORBInitializer.cpp b/TAO/orbsvcs/tests/Bug_2248_Regression/Server_ORBInitializer.cpp new file mode 100644 index 00000000000..8a557179c7c --- /dev/null +++ b/TAO/orbsvcs/tests/Bug_2248_Regression/Server_ORBInitializer.cpp @@ -0,0 +1,56 @@ +// -*- C++ -*- +// $Id$ + +#include "Server_ORBInitializer.h" +#include "tao/ORB_Constants.h" + +#if TAO_HAS_INTERCEPTORS == 1 + +#include "Server_Request_Interceptor.h" + +Server_ORBInitializer::Server_ORBInitializer (void) + : server_interceptor_ () +{ +} + +void +Server_ORBInitializer::pre_init ( + PortableInterceptor::ORBInitInfo_ptr + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ +} + +void +Server_ORBInitializer::post_init ( + PortableInterceptor::ORBInitInfo_ptr info + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + PortableInterceptor::ServerRequestInterceptor_ptr interceptor; + // Install the server request interceptor. + ACE_NEW_THROW_EX (interceptor, + Server_Request_Interceptor, + CORBA::NO_MEMORY ( + CORBA::SystemException::_tao_minor_code ( + TAO::VMCID, + ENOMEM), + CORBA::COMPLETED_NO)); + ACE_CHECK; + + this->server_interceptor_ = interceptor; + + info->add_server_request_interceptor (interceptor + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; +} + +PortableInterceptor::ServerRequestInterceptor_ptr +Server_ORBInitializer::server_interceptor (void) +{ + return + PortableInterceptor::ServerRequestInterceptor::_duplicate ( + this->server_interceptor_.in ()); +} + +#endif /* TAO_HAS_INTERCEPTORS == 1 */ |