00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef TAO_DII_INVOCATION_H
00018 #define TAO_DII_INVOCATION_H
00019
00020 #include "ace/pre.h"
00021
00022 #include "tao/DynamicInterface/dynamicinterface_export.h"
00023
00024 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 # pragma once
00026 #endif
00027
00028 #include "tao/Synch_Invocation.h"
00029 #include "tao/Messaging/Asynch_Invocation.h"
00030
00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00032
00033 class TAO_DII_Deferred_Reply_Dispatcher;
00034
00035 namespace Dynamic
00036 {
00037 class ParameterList;
00038 }
00039
00040 namespace TAO
00041 {
00042
00043
00044 class TAO_DynamicInterface_Export DII_Invocation:
00045 public Synch_Twoway_Invocation
00046 {
00047 public:
00048 friend class DII_Invocation_Adapter;
00049
00050 DII_Invocation (CORBA::Object_ptr otarget,
00051 Profile_Transport_Resolver &resolver,
00052 TAO_Operation_Details &detail,
00053 CORBA::ExceptionList *excp,
00054 CORBA::Request_ptr req,
00055 bool response_expected = true);
00056
00057 #if TAO_HAS_INTERCEPTORS ==1
00058 virtual Dynamic::ParameterList *arguments (ACE_ENV_SINGLE_ARG_DECL)
00059 ACE_THROW_SPEC ((CORBA::SystemException));
00060 #endif
00061
00062 Invocation_Status remote_invocation (
00063 ACE_Time_Value *max_wait_time
00064 ACE_ENV_ARG_DECL
00065 )
00066 ACE_THROW_SPEC ((CORBA::Exception));
00067
00068 virtual Invocation_Status handle_user_exception (
00069 TAO_InputCDR &cdr
00070 ACE_ENV_ARG_DECL
00071 )
00072 ACE_THROW_SPEC ((CORBA::Exception));
00073 private:
00074
00075 CORBA::ExceptionList *excp_list_;
00076
00077
00078 CORBA::Request_ptr host_;
00079
00080 };
00081
00082
00083
00084
00085
00086 class TAO_DynamicInterface_Export DII_Deferred_Invocation
00087 : public Asynch_Remote_Invocation
00088 {
00089 public:
00090 friend class DII_Deferred_Invocation_Adapter;
00091
00092 DII_Deferred_Invocation (CORBA::Object_ptr otarget,
00093 Profile_Transport_Resolver &resolver,
00094 TAO_Operation_Details &detail,
00095 TAO_DII_Deferred_Reply_Dispatcher *rd,
00096 CORBA::Request_ptr req,
00097 bool response_expected = true);
00098
00099 #if TAO_HAS_INTERCEPTORS ==1
00100 virtual Dynamic::ParameterList *arguments (ACE_ENV_SINGLE_ARG_DECL)
00101 ACE_THROW_SPEC ((CORBA::SystemException));
00102 #endif
00103
00104 Invocation_Status remote_invocation (
00105 ACE_Time_Value *max_wait_time
00106 ACE_ENV_ARG_DECL
00107 )
00108 ACE_THROW_SPEC ((CORBA::Exception));
00109
00110 private:
00111
00112
00113 CORBA::Request_ptr host_;
00114
00115 };
00116 }
00117
00118 TAO_END_VERSIONED_NAMESPACE_DECL
00119
00120 #include "ace/post.h"
00121
00122 #endif