diff options
Diffstat (limited to 'TAO/tao/ORB.i')
-rw-r--r-- | TAO/tao/ORB.i | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/TAO/tao/ORB.i b/TAO/tao/ORB.i index 27bf4fc602a..ff56440fcd1 100644 --- a/TAO/tao/ORB.i +++ b/TAO/tao/ORB.i @@ -315,6 +315,52 @@ CORBA_ORB::orb_core (void) const return this->orb_core_; } +ACE_INLINE PortableInterceptor::ClientRequestInterceptor_ptr +CORBA_ORB::_register_client_interceptor + (PortableInterceptor::ClientRequestInterceptor_ptr ci, + CORBA_Environment &ACE_TRY_ENV) +{ + if (ci->_is_a ("IDL:TAO/PortableInterceptor/ClientRequestInterceptor:1.0")) + { + PortableInterceptor::ClientRequestInterceptor_var oci = + PortableInterceptor::ClientRequestInterceptor::_duplicate (this->client_interceptor_); + this->client_interceptor_ = ci; + return oci._retn (); + } + else + ACE_THROW_RETURN (CORBA::INV_OBJREF (), 0); +} + +ACE_INLINE PortableInterceptor::ServerRequestInterceptor_ptr +CORBA_ORB::_register_server_interceptor + (PortableInterceptor::ServerRequestInterceptor_ptr ci, + CORBA_Environment &ACE_TRY_ENV) +{ + if (ci->_is_a ("IDL:TAO/PortableInterceptor/ServerRequestInterceptor:1.0")) + { + PortableInterceptor::ServerRequestInterceptor_var oci = + PortableInterceptor::ServerRequestInterceptor::_duplicate (this->server_interceptor_); + this->server_interceptor_ = ci; + return oci._retn (); + } + else + ACE_THROW_RETURN (CORBA::INV_OBJREF (), 0); +} + +ACE_INLINE PortableInterceptor::ClientRequestInterceptor_ptr +CORBA_ORB::_get_client_interceptor (CORBA_Environment &) +{ + return + PortableInterceptor::ClientRequestInterceptor::_duplicate (this->client_interceptor_); +} + +ACE_INLINE PortableInterceptor::ServerRequestInterceptor_ptr +CORBA_ORB::_get_server_interceptor (CORBA_Environment &ACE_TRY_ENV) +{ + return + PortableInterceptor::ServerRequestInterceptor::_duplicate (this->server_interceptor_); +} + // ************************************************************ // These are in CORBA namespace // ************************************************************ |