summaryrefslogtreecommitdiff
path: root/TAO/tao/PI_Server/ServerRequestInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/PI_Server/ServerRequestInfo.cpp')
-rw-r--r--TAO/tao/PI_Server/ServerRequestInfo.cpp31
1 files changed, 21 insertions, 10 deletions
diff --git a/TAO/tao/PI_Server/ServerRequestInfo.cpp b/TAO/tao/PI_Server/ServerRequestInfo.cpp
index 33c9d149cc1..2b613ec3738 100644
--- a/TAO/tao/PI_Server/ServerRequestInfo.cpp
+++ b/TAO/tao/PI_Server/ServerRequestInfo.cpp
@@ -15,10 +15,13 @@ ACE_RCSID (PortableServer,
#include "tao/TAO_Server_Request.h"
#include "tao/ORB_Core.h"
#include "tao/PolicyC.h"
-#include "tao/DynamicC.h"
+#include "tao/AnyTypeCode/DynamicC.h"
#include "tao/ORB_Core.h"
#include "tao/Service_Context.h"
-#include "tao/RequestInfo_Util.h"
+#include "tao/PI/RequestInfo_Util.h"
+#include "tao/PI/PICurrent.h"
+#include "tao/PI/PICurrent_Impl.h"
+#include "tao/AnyTypeCode/ExceptionA.h"
#include "ace/OS_NS_string.h"
@@ -107,7 +110,9 @@ TAO::ServerRequestInfo::arguments (ACE_ENV_SINGLE_ARG_DECL)
{
// Insert the operation parameters into the
// Dynamic::ParameterList.
- (*i)->interceptor_param ((*parameter_list)[p]);
+ Dynamic::Parameter& parameter = (*parameter_list)[p];
+ parameter.mode = (*i)->mode ();
+ (*i)->interceptor_value (&parameter.argument);
}
return safe_parameter_list._retn ();
@@ -191,7 +196,7 @@ TAO::ServerRequestInfo::result (ACE_ENV_SINGLE_ARG_DECL)
// Result is always first element in TAO::Argument array.
TAO::Argument * const r = this->args_[0];
- r->interceptor_result (result_any);
+ r->interceptor_value (result_any);
return safe_result_any._retn ();
}
@@ -250,9 +255,12 @@ TAO::ServerRequestInfo::get_slot (PortableInterceptor::SlotId id
{
// Retrieve the total number of assigned slots from the PICurrent.
// No TSS access is incurred.
- TAO::PICurrent * pi_current =
+ CORBA::Object_ptr pi_current_obj =
this->server_request_.orb_core ()->pi_current ();
+ TAO::PICurrent *pi_current =
+ dynamic_cast <TAO::PICurrent*> (pi_current_obj);
+
if (pi_current == 0)
ACE_THROW_RETURN (CORBA::INTERNAL (), 0);
@@ -260,9 +268,9 @@ TAO::ServerRequestInfo::get_slot (PortableInterceptor::SlotId id
ACE_CHECK_RETURN (0);
// Retrieve the request scope PICurrent object.
- TAO::PICurrent_Impl &rsc = this->server_request_.rs_pi_current ();
+ TAO::PICurrent_Impl *rsc = this->server_request_.rs_pi_current ();
- return rsc.get_slot (id ACE_ENV_ARG_PARAMETER);
+ return rsc->get_slot (id ACE_ENV_ARG_PARAMETER);
}
@@ -517,9 +525,12 @@ TAO::ServerRequestInfo::set_slot (PortableInterceptor::SlotId id,
{
// Retrieve the total number of assigned slots from the PICurrent
// object. No TSS access is incurred.
- TAO::PICurrent * pi_current =
+ CORBA::Object_ptr pi_current_obj =
this->server_request_.orb_core ()->pi_current ();
+ TAO::PICurrent *pi_current =
+ dynamic_cast <TAO::PICurrent*> (pi_current_obj);
+
if (pi_current == 0)
ACE_THROW (CORBA::INTERNAL ());
@@ -527,9 +538,9 @@ TAO::ServerRequestInfo::set_slot (PortableInterceptor::SlotId id,
ACE_CHECK;
// Retrieve the "request scope current" (RSC).
- TAO::PICurrent_Impl & rsc = this->server_request_.rs_pi_current ();
+ TAO::PICurrent_Impl * rsc = this->server_request_.rs_pi_current ();
- rsc.set_slot (id, data ACE_ENV_ARG_PARAMETER);
+ rsc->set_slot (id, data ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}