summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/LWFT/Client_Request_Interceptor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/LWFT/Client_Request_Interceptor.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/LWFT/Client_Request_Interceptor.cpp104
1 files changed, 104 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/LWFT/Client_Request_Interceptor.cpp b/TAO/orbsvcs/orbsvcs/LWFT/Client_Request_Interceptor.cpp
new file mode 100644
index 00000000000..6ca04cf7265
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/LWFT/Client_Request_Interceptor.cpp
@@ -0,0 +1,104 @@
+// -*- C++ -*-
+// $Id$
+
+#include "Client_Request_Interceptor.h"
+
+#include "ace/Log_Msg.h"
+
+#include "ForwardingAgent.h"
+
+Client_Request_Interceptor::Client_Request_Interceptor (
+ const char *orb_id,
+ ForwardingAgent_i *agent)
+ : orb_id_ (CORBA::string_dup (orb_id)),
+ orb_ (),
+ request_count_ (0),
+ agent_ (agent)
+{
+}
+
+char *
+Client_Request_Interceptor::name (void)
+{
+ return CORBA::string_dup ("Client_Request_Interceptor");
+}
+
+void
+Client_Request_Interceptor::destroy (void)
+{
+}
+
+void
+Client_Request_Interceptor::send_request (
+ PortableInterceptor::ClientRequestInfo_ptr /* ri */)
+{
+ /*
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT("(%P|%t) Client_Request_Interceptor::send_request (%s)\n"),
+ ri->operation ()));
+ */
+}
+
+void
+Client_Request_Interceptor::send_poll (
+ PortableInterceptor::ClientRequestInfo_ptr)
+{
+}
+
+void
+Client_Request_Interceptor::receive_reply (
+ PortableInterceptor::ClientRequestInfo_ptr /* ri */)
+{
+ /*
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT("(%P|%t) Client_Request_Interceptor::receive_reply (%s)\n"),
+ ri->operation ()));
+ */
+}
+
+void
+Client_Request_Interceptor::receive_exception (
+ PortableInterceptor::ClientRequestInfo_ptr ri)
+{
+ if (ACE_OS::strcmp (ri->received_exception_id (),
+ "IDL:omg.org/CORBA/COMM_FAILURE:1.0") != 0
+ && ACE_OS::strcmp (ri->received_exception_id (),
+ "IDL:omg.org/CORBA/TRANSIENT:1.0") != 0)
+ {
+ return;
+ }
+/*
+ ACE_DEBUG ((LM_DEBUG,
+ "Client_Request_Interceptor::receive_exception - "
+ "caught %s\n",
+ ri->received_exception_id ()));
+*/
+ const CORBA::ULong tagID = 9654;
+ char *tag = 0;
+
+ try
+ {
+ IOP::TaggedComponent_var mytag = ri->get_effective_component (tagID);
+ tag = reinterpret_cast <char *> ( mytag->component_data.get_buffer ());
+ ACE_CString new_string = CORBA::string_dup (tag);
+ CORBA::Object_var forward = this->agent_->next_member (tag);
+ ACE_THROW (PortableInterceptor::ForwardRequest (forward.in ()));
+ }
+ catch (CORBA::BAD_PARAM&)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Client_Request_Interceptor::receive_exception - "
+ "Tagged Component not found\n"));
+ }
+}
+
+void
+Client_Request_Interceptor::receive_other (
+ PortableInterceptor::ClientRequestInfo_ptr /* ri */)
+{
+ /*
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT("(%P|%t) Client_Request_Interceptor::receive_other (%s)\n"),
+ ri->operation ()));
+ */
+}