diff options
Diffstat (limited to 'TAO/tao/ClientRequestInfo_i.inl')
-rw-r--r-- | TAO/tao/ClientRequestInfo_i.inl | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/TAO/tao/ClientRequestInfo_i.inl b/TAO/tao/ClientRequestInfo_i.inl new file mode 100644 index 00000000000..98f5bfd9877 --- /dev/null +++ b/TAO/tao/ClientRequestInfo_i.inl @@ -0,0 +1,36 @@ +// -*- C++ -*- +// +// $Id$ + +ACE_INLINE void +TAO_ClientRequestInfo_i::exception (CORBA::Exception *exception) +{ + if (CORBA::SystemException::_downcast (exception) != 0) + this->reply_status_ = PortableInterceptor::SYSTEM_EXCEPTION; + else if (CORBA::UserException::_downcast (exception) != 0) + this->reply_status_ = PortableInterceptor::USER_EXCEPTION; + + // @@ Is it possible for both of the above downcasts to fail? + + this->caught_exception_ = exception; +} + +ACE_INLINE void +TAO_ClientRequestInfo_i::response_expected (CORBA::Boolean flag) +{ + this->response_expected_ = flag; +} + +ACE_INLINE void +TAO_ClientRequestInfo_i::forward_reference ( + PortableInterceptor::ForwardRequest &) +{ + // Note that we're converting the ForwardRequest exception in to a + // LOCATION_FORWARD reply, so we do not set the exception status. + // + // The forward object reference is not handled here. Rather, it is + // handled by the TAO_GIOP_Invocation object so that its profiles + // can be added to the list of forward profiles. + + this->reply_status_ = PortableInterceptor::LOCATION_FORWARD; +} |