diff options
Diffstat (limited to 'TAO/tao/Collocated_Invocation.cpp')
-rw-r--r-- | TAO/tao/Collocated_Invocation.cpp | 42 |
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; + } +} |