Merge pull request #2303 from jwillemsen/jwi-803
[ACE_TAO.git] / TAO / tao / PI_Server / ServerRequestInfo.inl
blobb8fcfc018125c56049ca7008515715575cdf73bb
1 // -*- C++ -*-
2 #include "tao/PortableServer/Servant_Upcall.h"
4 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
6 ACE_INLINE
7 TAO::ServerRequestInfo::ServerRequestInfo (
8   TAO_ServerRequest & server_request,
9   TAO::Argument * const * args,
10   size_t nargs,
11   TAO::Portable_Server::Servant_Upcall *servant_upcall,
12   CORBA::TypeCode_ptr const * exceptions,
13   CORBA::ULong nexceptions)
14   : server_request_ (server_request)
15   , args_ (args)
16   , nargs_ (nargs)
17   , servant_upcall_ (servant_upcall)
18   , exceptions_ (exceptions)
19   , nexceptions_ (nexceptions)
23 ACE_INLINE void
24 TAO::ServerRequestInfo::forward_reference (
25   PortableInterceptor::ForwardRequest &exc)
27   // Note that we're converting the ForwardRequest exception in to a
28   // LOCATION_FORWARD reply, so we do not set the exception status.
29   this->server_request_.pi_reply_status (PortableInterceptor::LOCATION_FORWARD);
31   // Store the forward reference in the TAO_ServerRequest object.
32   this->server_request_.forward_location (exc.forward.in ());
35 ACE_INLINE void
36 TAO::ServerRequestInfo::forward_reference (CORBA::Object_ptr obj)
38   // We only get here if a servant manager threw a
39   // PortableServer::ForwardRequest exception.
40   this->server_request_.pi_reply_status (PortableInterceptor::LOCATION_FORWARD);
42   // Store the forward reference in the TAO_ServerRequest object.
43   this->server_request_.forward_location (obj);
46 ACE_INLINE TAO_ServerRequest &
47 TAO::ServerRequestInfo::server_request ()
49   return this->server_request_;
53 TAO_END_VERSIONED_NAMESPACE_DECL