00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef _TAO_IDL_SERVERREQUESTINTERCEPTORC_H_
00032 #define _TAO_IDL_SERVERREQUESTINTERCEPTORC_H_
00033
00034 #include "ace/pre.h"
00035
00036
00037 #include "ace/config-all.h"
00038
00039 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00040 # pragma once
00041 #endif
00042
00043 #include "tao/PI_Server/pi_server_export.h"
00044 #include "tao/ORB.h"
00045 #include "tao/SystemException.h"
00046 #include "tao/Environment.h"
00047 #include "tao/Object.h"
00048 #include "tao/Objref_VarOut_T.h"
00049
00050 #include "tao/PI/InterceptorC.h"
00051 #include "tao/PI/PIForwardRequestC.h"
00052 #include "tao/OctetSeqC.h"
00053
00054 #if defined (TAO_EXPORT_MACRO)
00055 #undef TAO_EXPORT_MACRO
00056 #endif
00057 #define TAO_EXPORT_MACRO TAO_PI_Server_Export
00058
00059
00060
00061
00062 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00063
00064 namespace PortableInterceptor
00065 {
00066
00067
00068
00069
00070 #if !defined (_PORTABLEINTERCEPTOR_SERVERREQUESTINFO__VAR_OUT_CH_)
00071 #define _PORTABLEINTERCEPTOR_SERVERREQUESTINFO__VAR_OUT_CH_
00072
00073 class ServerRequestInfo;
00074 typedef ServerRequestInfo *ServerRequestInfo_ptr;
00075
00076 typedef
00077 TAO_Objref_Var_T<
00078 ServerRequestInfo
00079 >
00080 ServerRequestInfo_var;
00081
00082 typedef
00083 TAO_Objref_Out_T<
00084 ServerRequestInfo
00085 >
00086 ServerRequestInfo_out;
00087
00088 #endif
00089
00090
00091
00092
00093 #if !defined (_PORTABLEINTERCEPTOR_SERVERREQUESTINTERCEPTOR__VAR_OUT_CH_)
00094 #define _PORTABLEINTERCEPTOR_SERVERREQUESTINTERCEPTOR__VAR_OUT_CH_
00095
00096 class ServerRequestInterceptor;
00097 typedef ServerRequestInterceptor *ServerRequestInterceptor_ptr;
00098
00099 typedef
00100 TAO_Objref_Var_T<
00101 ServerRequestInterceptor
00102 >
00103 ServerRequestInterceptor_var;
00104
00105 typedef
00106 TAO_Objref_Out_T<
00107 ServerRequestInterceptor
00108 >
00109 ServerRequestInterceptor_out;
00110
00111 #endif
00112
00113
00114
00115
00116 #if !defined (_PORTABLEINTERCEPTOR_SERVERREQUESTINTERCEPTOR_CH_)
00117 #define _PORTABLEINTERCEPTOR_SERVERREQUESTINTERCEPTOR_CH_
00118
00119 class TAO_PI_Server_Export ServerRequestInterceptor
00120 : public virtual ::PortableInterceptor::Interceptor
00121 {
00122 public:
00123 typedef ServerRequestInterceptor_ptr _ptr_type;
00124 typedef ServerRequestInterceptor_var _var_type;
00125
00126
00127 static ServerRequestInterceptor_ptr _duplicate (ServerRequestInterceptor_ptr obj);
00128
00129 static void _tao_release (ServerRequestInterceptor_ptr obj);
00130
00131 static ServerRequestInterceptor_ptr _narrow (
00132 ::CORBA::Object_ptr obj
00133 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00134 );
00135
00136 static ServerRequestInterceptor_ptr _unchecked_narrow (
00137 ::CORBA::Object_ptr obj
00138 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00139 );
00140
00141 static ServerRequestInterceptor_ptr _nil (void)
00142 {
00143 return static_cast<ServerRequestInterceptor_ptr> (0);
00144 }
00145
00146
00147
00148
00149
00150
00151 #if TAO_HAS_EXTENDED_FT_INTERCEPTORS == 1
00152
00153 virtual void tao_ft_interception_point (
00154 ::PortableInterceptor::ServerRequestInfo_ptr ri,
00155 ::CORBA::OctetSeq_out os
00156 ACE_ENV_ARG_DECL_NOT_USED
00157 )
00158 ACE_THROW_SPEC ((
00159 ::CORBA::SystemException,
00160 ::PortableInterceptor::ForwardRequest
00161 )) {}
00162
00163 #endif
00164
00165
00166
00167
00168 virtual void receive_request_service_contexts (
00169 ::PortableInterceptor::ServerRequestInfo_ptr ri
00170 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00171 )
00172 ACE_THROW_SPEC ((
00173 ::CORBA::SystemException,
00174 ::PortableInterceptor::ForwardRequest
00175 )) = 0;
00176
00177
00178
00179
00180 virtual void receive_request (
00181 ::PortableInterceptor::ServerRequestInfo_ptr ri
00182 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00183 )
00184 ACE_THROW_SPEC ((
00185 ::CORBA::SystemException,
00186 ::PortableInterceptor::ForwardRequest
00187 )) = 0;
00188
00189
00190
00191
00192 virtual void send_reply (
00193 ::PortableInterceptor::ServerRequestInfo_ptr ri
00194 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00195 )
00196 ACE_THROW_SPEC ((
00197 ::CORBA::SystemException
00198 )) = 0;
00199
00200
00201
00202
00203 virtual void send_exception (
00204 ::PortableInterceptor::ServerRequestInfo_ptr ri
00205 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00206 )
00207 ACE_THROW_SPEC ((
00208 ::CORBA::SystemException,
00209 ::PortableInterceptor::ForwardRequest
00210 )) = 0;
00211
00212
00213
00214
00215 virtual void send_other (
00216 ::PortableInterceptor::ServerRequestInfo_ptr ri
00217 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00218 )
00219 ACE_THROW_SPEC ((
00220 ::CORBA::SystemException,
00221 ::PortableInterceptor::ForwardRequest
00222 )) = 0;
00223
00224
00225
00226
00227 virtual ::CORBA::Boolean _is_a (
00228 const char *type_id
00229 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00230 );
00231
00232 virtual const char* _interface_repository_id (void) const;
00233 virtual ::CORBA::Boolean marshal (TAO_OutputCDR &cdr);
00234
00235 protected:
00236
00237 ServerRequestInterceptor (void);
00238
00239 virtual ~ServerRequestInterceptor (void);
00240
00241 private:
00242
00243 ServerRequestInterceptor (const ServerRequestInterceptor &);
00244
00245 void operator= (const ServerRequestInterceptor &);
00246 };
00247
00248 #endif
00249
00250
00251
00252
00253 }
00254
00255
00256
00257
00258
00259 namespace TAO
00260 {
00261
00262 #if !defined (_PORTABLEINTERCEPTOR_SERVERREQUESTINFO__TRAITS_)
00263 #define _PORTABLEINTERCEPTOR_SERVERREQUESTINFO__TRAITS_
00264
00265 template<>
00266 struct TAO_PI_Server_Export Objref_Traits< ::PortableInterceptor::ServerRequestInfo>
00267 {
00268 static ::PortableInterceptor::ServerRequestInfo_ptr duplicate (
00269 ::PortableInterceptor::ServerRequestInfo_ptr
00270 );
00271 static void release (
00272 ::PortableInterceptor::ServerRequestInfo_ptr
00273 );
00274 static ::PortableInterceptor::ServerRequestInfo_ptr nil (void);
00275 static ::CORBA::Boolean marshal (
00276 ::PortableInterceptor::ServerRequestInfo_ptr p,
00277 TAO_OutputCDR & cdr
00278 );
00279 };
00280
00281 #endif
00282
00283 #if !defined (_PORTABLEINTERCEPTOR_SERVERREQUESTINTERCEPTOR__TRAITS_)
00284 #define _PORTABLEINTERCEPTOR_SERVERREQUESTINTERCEPTOR__TRAITS_
00285
00286 template<>
00287 struct TAO_PI_Server_Export Objref_Traits< ::PortableInterceptor::ServerRequestInterceptor>
00288 {
00289 static ::PortableInterceptor::ServerRequestInterceptor_ptr duplicate (
00290 ::PortableInterceptor::ServerRequestInterceptor_ptr
00291 );
00292 static void release (
00293 ::PortableInterceptor::ServerRequestInterceptor_ptr
00294 );
00295 static ::PortableInterceptor::ServerRequestInterceptor_ptr nil (void);
00296 static ::CORBA::Boolean marshal (
00297 ::PortableInterceptor::ServerRequestInterceptor_ptr p,
00298 TAO_OutputCDR & cdr
00299 );
00300 };
00301
00302 #endif
00303 }
00304
00305
00306
00307
00308 TAO_END_VERSIONED_NAMESPACE_DECL
00309
00310 #include "ace/post.h"
00311
00312 #endif
00313
00314