summaryrefslogtreecommitdiff
path: root/TAO/tao/ClientRequestInfo.h
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2000-10-23 10:03:19 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2000-10-23 10:03:19 +0000
commit972f93ac6e5baa2bbcfcab44e8a55730cbf78fea (patch)
treeae0eb6fa77b9d9753e97f55b09c48731e3f807d8 /TAO/tao/ClientRequestInfo.h
parent397114a145b42ac235f4e59aeeaa8409978a895f (diff)
downloadATCD-972f93ac6e5baa2bbcfcab44e8a55730cbf78fea.tar.gz
ChangeLogTag:Mon Oct 23 02:49:25 2000 Ossama Othman <ossama@uci.edu>
Diffstat (limited to 'TAO/tao/ClientRequestInfo.h')
-rw-r--r--TAO/tao/ClientRequestInfo.h198
1 files changed, 198 insertions, 0 deletions
diff --git a/TAO/tao/ClientRequestInfo.h b/TAO/tao/ClientRequestInfo.h
new file mode 100644
index 00000000000..a7978c1e625
--- /dev/null
+++ b/TAO/tao/ClientRequestInfo.h
@@ -0,0 +1,198 @@
+// -*- C++ -*-
+//
+// $Id$
+
+//========================================================================
+//
+// = LIBRARY
+// TAO
+//
+// = FILENAME
+// ClientRequestInfo.h
+//
+// = DESCRIPTION
+// This is the implementation of the
+// PortableInterceptor::ClientRequestInfo interface.
+//
+// = AUTHOR
+// Kirthika Parameswaran <kirthika@cs.wustl.edu>
+// Ossama Othman <ossama@uci.edu>
+//
+//=========================================================================
+
+
+#ifndef TAO_CLIENT_REQUEST_INFO_H
+#define TAO_CLIENT_REQUEST_INFO_H
+
+#include "ace/pre.h"
+
+#include "tao/corbafwd.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined(_MSC_VER)
+#if (_MSC_VER >= 1200)
+#pragma warning(push)
+#endif /* _MSC_VER >= 1200 */
+#pragma warning(disable:4250)
+#endif /* _MSC_VER */
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+
+#include "tao/PortableInterceptorC.h"
+#include "tao/LocalObject.h"
+#include "tao/StringSeqC.h"
+
+
+class TAO_Export TAO_ClientRequestInfo
+ : public virtual PortableInterceptor::ClientRequestInfo,
+ public virtual CORBA::LocalObject
+{
+public:
+ TAO_ClientRequestInfo (const char * operation,
+ IOP::ServiceContextList &service_context_list,
+ CORBA::Object_ptr target);
+
+ virtual CORBA::ULong request_id (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual char * operation (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual Dynamic::ParameterList * arguments (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual Dynamic::ExceptionList * exceptions (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual Dynamic::ContextList * contexts (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual Dynamic::RequestContext * operation_context (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual CORBA::Any * result (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual CORBA::Boolean response_expected (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException)) ;
+
+# if (TAO_HAS_CORBA_MESSAGING == 1)
+ virtual Messaging::SyncScope sync_scope (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+#endif /* TAO_HAS_CORBA_MESSAGING */
+
+ virtual PortableInterceptor::ReplyStatus reply_status (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual CORBA::Object_ptr forward_reference (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException)) ;
+
+ virtual CORBA::Any * get_slot (
+ PortableInterceptor::SlotId id,
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::InvalidSlot));
+
+ virtual IOP::ServiceContext * get_request_service_context (
+ IOP::ServiceId id,
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual IOP::ServiceContext * get_reply_service_context (
+ IOP::ServiceId id,
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual CORBA::Object_ptr target (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual CORBA::Object_ptr effective_target (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual IOP::TaggedProfile * effective_profile (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual CORBA::Any * received_exception (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+ // This method causes problem since there is no trivial way to
+ // extract the exception from the Any.
+
+ virtual CORBA::Exception * _received_exception (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+ // Note: This is TAO specific and was done to combat the previous
+ // problem to some extent.
+
+ virtual char * received_exception_id (
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual IOP::TaggedComponent * get_effective_component (
+ IOP::ComponentId id,
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual CORBA::Policy_ptr get_request_policy (
+ CORBA::PolicyType type,
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void add_request_service_context (
+ const IOP::ServiceContext & service_context,
+ CORBA::Boolean replace,
+ CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ())
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+protected:
+ void exception (CORBA::Exception *exception);
+ // Change the exception status.
+
+ void request_id (CORBA::ULong request_id);
+ // Update the request id.
+
+protected:
+ CORBA::ULong request_id_;
+ const char * operation_;
+ Dynamic::ParameterList parameter_list_;
+ Dynamic::ExceptionList exception_list_;
+ Dynamic::ContextList context_list_;
+ Dynamic::RequestContext request_context_;
+ CORBA::Object_var forward_reference_;
+
+ // Needed to ensure no copy anywhere.
+ IOP::ServiceContextList &service_context_list_;
+
+ CORBA::Any result_val_;
+ CORBA::Object_var target_;
+ CORBA::Object_var effective_target_;
+ CORBA::Any any_exception_;
+ CORBA::Exception *caught_exception_;
+};
+
+#endif /* TAO_HAS_INTERCEPTORS == 1 */
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1200)
+#pragma warning(pop)
+#endif /* _MSC_VER */
+
+#include "ace/post.h"
+
+#endif /* TAO_CLIENT_REQUEST_INFO_H */