summaryrefslogtreecommitdiff
path: root/TAO/tao/Messaging/Asynch_Invocation_Adapter.cpp
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2007-04-20 08:07:58 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2007-04-20 08:07:58 +0000
commit5663c6b3ef19398ea57cca072af226ba38caaab2 (patch)
treec017c63abd2c2e204e92f26c71477fc039fbcf28 /TAO/tao/Messaging/Asynch_Invocation_Adapter.cpp
parentdb4ba26a419d6d88d1e6e782c13b7cc14a39bb23 (diff)
downloadATCD-5663c6b3ef19398ea57cca072af226ba38caaab2.tar.gz
Fri Apr 20 08:05:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'TAO/tao/Messaging/Asynch_Invocation_Adapter.cpp')
-rw-r--r--TAO/tao/Messaging/Asynch_Invocation_Adapter.cpp35
1 files changed, 25 insertions, 10 deletions
diff --git a/TAO/tao/Messaging/Asynch_Invocation_Adapter.cpp b/TAO/tao/Messaging/Asynch_Invocation_Adapter.cpp
index c4c15850c87..f8cb57a02e2 100644
--- a/TAO/tao/Messaging/Asynch_Invocation_Adapter.cpp
+++ b/TAO/tao/Messaging/Asynch_Invocation_Adapter.cpp
@@ -2,6 +2,7 @@
#include "tao/Messaging/Asynch_Invocation_Adapter.h"
#include "tao/Messaging/Asynch_Reply_Dispatcher.h"
#include "tao/Messaging/Asynch_Invocation.h"
+#include "tao/Messaging/AMI_Arguments_Converter_Impl.h"
#include "tao/Profile_Transport_Resolver.h"
#include "tao/operation_details.h"
@@ -120,17 +121,32 @@ namespace TAO
TAO_Stub *stub,
TAO_Operation_Details &details,
CORBA::Object_var &effective_target,
- Collocation_Strategy strat
- )
+ Collocation_Strategy strat)
{
- // When doing a collocation asynch invocation we shouldn't use the
- // stub args but use the skel args
- details.use_stub_args (false);
-
- return Invocation_Adapter::invoke_collocated_i (stub,
+ if (stub->orb_core ()->orb_params ()->ami_collication ())
+ {
+ // When doing a collocation asynch invocation we shouldn't use the
+ // stub args but use the skel args
+ details.use_stub_args (false);
+
+ TAO_AMI_Arguments_Converter_Impl* ami_arguments_converter
+ = ACE_Dynamic_Service<TAO_AMI_Arguments_Converter_Impl>::instance (
+ "AMI_Arguments_Converter");
+ details.cac (ami_arguments_converter);
+
+ return Invocation_Adapter::invoke_collocated_i (stub,
+ details,
+ effective_target,
+ strat);
+ }
+ else
+ {
+ ACE_Time_Value *max_wait_time = 0;
+ return Invocation_Adapter::invoke_remote_i (stub,
details,
effective_target,
- strat);
+ max_wait_time);
+ }
}
Invocation_Status
@@ -163,8 +179,7 @@ namespace TAO
{
this->safe_rd_->schedule_timer (
op.request_id (),
- *max_wait_time
- );
+ *max_wait_time);
}
}