summaryrefslogtreecommitdiff
path: root/TAO/tao/Collocated_Invocation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Collocated_Invocation.cpp')
-rw-r--r--TAO/tao/Collocated_Invocation.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/TAO/tao/Collocated_Invocation.cpp b/TAO/tao/Collocated_Invocation.cpp
new file mode 100644
index 00000000000..4bdb7dafc2a
--- /dev/null
+++ b/TAO/tao/Collocated_Invocation.cpp
@@ -0,0 +1,42 @@
+#include "Collocated_Invocation.h"
+#include "Collocation_Proxy_Broker.h"
+#include "operation_details.h"
+
+ACE_RCSID (tao,
+ Collocated_Invocation,
+ "$Id$")
+
+namespace TAO
+{
+
+ Collocated_Invocation::Collocated_Invocation (TAO_Stub *stub,
+ TAO_Operation_Details &detail)
+ : Invocation_Base (stub,
+ detail)
+ , forwarded_ (0)
+ {
+ }
+
+ Invocation_Status
+ Collocated_Invocation::invoke (Collocation_Proxy_Broker *cpb,
+ CORBA::Object *obj,
+ Collocation_Strategy strat
+ ACE_ENV_ARG_DECL)
+ {
+ // @@ Time to call interceptors...
+ cpb->dispatch (obj,
+ this->forwarded_to_.out (),
+ this->details_.args (),
+ this->details_.args_num (),
+ this->details_.opname (),
+ this->details_.opname_len (),
+ strat
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ if (this->forwarded_to_.in () != 0)
+ return TAO_INVOKE_RESTART;
+
+ return TAO_INVOKE_SUCCESS;
+ }
+}