Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TAO_SERVER_REQUEST_INTERCEPTOR_ADAPTER_H
00017 #define TAO_SERVER_REQUEST_INTERCEPTOR_ADAPTER_H
00018
00019 #include "ace/pre.h"
00020
00021 #include "tao/TAO_Export.h"
00022 #include "tao/RequestInterceptor_Adapter.h"
00023
00024 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 # pragma once
00026 #endif
00027
00028 #include "tao/orbconf.h"
00029 #include "tao/Basic_Types.h"
00030
00031 #if TAO_HAS_EXTENDED_FT_INTERCEPTORS == 1
00032 # include "tao/OctetSeqC.h"
00033 #endif
00034
00035 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00036
00037 namespace PortableInterceptor
00038 {
00039 class ServerRequestInterceptor;
00040 typedef ServerRequestInterceptor *ServerRequestInterceptor_ptr;
00041
00042 typedef CORBA::Short ReplyStatus;
00043 }
00044
00045 namespace CORBA
00046 {
00047 class PolicyList;
00048 }
00049
00050 class TAO_ServerRequest;
00051
00052 namespace TAO
00053 {
00054 class ServerRequestInfo;
00055 class Argument;
00056 class PICurrent_Impl;
00057 class Upcall_Command;
00058
00059
00060
00061
00062 class TAO_Export ServerRequestInterceptor_Adapter
00063 : public RequestInterceptor_Adapter
00064 {
00065 public:
00066 virtual ~ServerRequestInterceptor_Adapter (void);
00067
00068
00069
00070
00071
00072
00073
00074
00075 #if TAO_HAS_EXTENDED_FT_INTERCEPTORS == 1
00076
00077
00078
00079 virtual void tao_ft_interception_point (
00080 TAO_ServerRequest &server_request,
00081 TAO::Argument * const args[],
00082 size_t nargs,
00083 void * servant_upcall,
00084 CORBA::TypeCode_ptr const * exceptions,
00085 CORBA::ULong nexceptions,
00086 CORBA::OctetSeq_out oc) = 0;
00087 #endif
00088
00089
00090
00091
00092
00093
00094
00095
00096 virtual void receive_request_service_contexts (
00097 TAO_ServerRequest &server_request,
00098 TAO::Argument * const args[],
00099 size_t nargs,
00100 void * servant_upcall,
00101 CORBA::TypeCode_ptr const * exceptions,
00102 CORBA::ULong nexceptions) = 0;
00103
00104
00105 virtual void receive_request (
00106 TAO_ServerRequest &server_request,
00107 TAO::Argument * const args[],
00108 size_t nargs,
00109 void * servant_upcall,
00110 CORBA::TypeCode_ptr const * exceptions,
00111 CORBA::ULong nexceptions) = 0;
00112
00113
00114
00115 virtual void send_reply (
00116 TAO_ServerRequest &server_request,
00117 TAO::Argument * const args[],
00118 size_t nargs,
00119 void * servant_upcall,
00120 CORBA::TypeCode_ptr const * exceptions,
00121 CORBA::ULong nexceptions) = 0;
00122
00123
00124
00125 virtual void send_exception (
00126 TAO_ServerRequest &server_request,
00127 TAO::Argument * const args[],
00128 size_t nargs,
00129 void * servant_upcall,
00130 CORBA::TypeCode_ptr const * exceptions,
00131 CORBA::ULong nexceptions) = 0;
00132
00133
00134
00135 virtual void send_other (
00136 TAO_ServerRequest &server_request,
00137 TAO::Argument * const args[],
00138 size_t nargs,
00139 void * servant_upcall,
00140 CORBA::TypeCode_ptr const * exceptions,
00141 CORBA::ULong nexceptions) = 0;
00142
00143
00144
00145 virtual void add_interceptor (
00146 PortableInterceptor::ServerRequestInterceptor_ptr interceptor) = 0;
00147
00148
00149 virtual void add_interceptor (
00150 PortableInterceptor::ServerRequestInterceptor_ptr interceptor,
00151 const CORBA::PolicyList& policies
00152 ) = 0;
00153
00154 virtual TAO::PICurrent_Impl *allocate_pi_current (void) = 0;
00155
00156 virtual void deallocate_pi_current (TAO::PICurrent_Impl *picurrent) = 0;
00157
00158 virtual void execute_command (
00159 TAO_ServerRequest &server_request,
00160 TAO::Upcall_Command &command) = 0;
00161 };
00162 }
00163
00164 TAO_END_VERSIONED_NAMESPACE_DECL
00165
00166 #include "ace/post.h"
00167
00168 #endif