diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:21 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:21 +0000 |
commit | 3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c (patch) | |
tree | 197c810e5f5bce17b1233a7cb8d7b50c0bcd25e2 /TAO/tao/PI_Server/ServerRequestInfo.inl | |
parent | 6b846cf03c0bcbd8c276cb0af61a181e5f98eaae (diff) | |
download | ATCD-3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c.tar.gz |
Repo restructuring
Diffstat (limited to 'TAO/tao/PI_Server/ServerRequestInfo.inl')
-rw-r--r-- | TAO/tao/PI_Server/ServerRequestInfo.inl | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/TAO/tao/PI_Server/ServerRequestInfo.inl b/TAO/tao/PI_Server/ServerRequestInfo.inl new file mode 100644 index 00000000000..09985532ba8 --- /dev/null +++ b/TAO/tao/PI_Server/ServerRequestInfo.inl @@ -0,0 +1,60 @@ +// -*- C++ -*- +// +// $Id$ + +#include "tao/PortableServer/Servant_Upcall.h" + + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +ACE_INLINE +TAO::ServerRequestInfo::ServerRequestInfo ( + TAO_ServerRequest & server_request, + TAO::Argument * const * args, + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + CORBA::ULong nexceptions) + : server_request_ (server_request) + , args_ (args) + , nargs_ (nargs) + , servant_upcall_ ( + static_cast<TAO::Portable_Server::Servant_Upcall *> (servant_upcall)) + , exceptions_ (exceptions) + , nexceptions_ (nexceptions) +{ +} + +ACE_INLINE void +TAO::ServerRequestInfo::forward_reference ( + PortableInterceptor::ForwardRequest &exc) +{ + // Note that we're converting the ForwardRequest exception in to a + // LOCATION_FORWARD reply, so we do not set the exception status. + + this->server_request_.reply_status (PortableInterceptor::LOCATION_FORWARD); + + // Store the forward reference in the TAO_ServerRequest object. + this->server_request_.forward_location (exc.forward.in ()); +} + +ACE_INLINE void +TAO::ServerRequestInfo::forward_reference (CORBA::Object_ptr obj) +{ + // We only get here if a servant manager threw a + // PortableServer::ForwardRequest exception. + + this->server_request_.reply_status (PortableInterceptor::LOCATION_FORWARD); + + // Store the forward reference in the TAO_ServerRequest object. + this->server_request_.forward_location (obj); +} + +ACE_INLINE TAO_ServerRequest & +TAO::ServerRequestInfo::server_request (void) +{ + return this->server_request_; +} + + +TAO_END_VERSIONED_NAMESPACE_DECL |