00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef TAO_UPCALL_WRAPPER_H
00016 #define TAO_UPCALL_WRAPPER_H
00017
00018 #include "ace/pre.h"
00019
00020 #include "tao/PortableServer/portableserver_export.h"
00021
00022 #ifndef ACE_LACKS_PRAGMA_ONCE
00023 # pragma once
00024 #endif
00025
00026 #include "tao/Basic_Types.h"
00027 #include "tao/orbconf.h"
00028 #include "ace/CORBA_macros.h"
00029
00030
00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00032
00033 class TAO_ServantBase;
00034 class TAO_ServerRequest;
00035 class TAO_InputCDR;
00036 class TAO_OutputCDR;
00037
00038 namespace PortableServer
00039 {
00040 typedef ::TAO_ServantBase ServantBase;
00041 }
00042
00043 namespace CORBA
00044 {
00045 class Environment;
00046 }
00047
00048 namespace TAO
00049 {
00050 class Argument;
00051 class Upcall_Command;
00052
00053
00054
00055
00056
00057
00058
00059 class TAO_PortableServer_Export Upcall_Wrapper
00060 {
00061 public:
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087 void upcall (TAO_ServerRequest & server_request,
00088 TAO::Argument * const args[],
00089 size_t nargs,
00090 TAO::Upcall_Command & command
00091
00092 #if TAO_HAS_INTERCEPTORS == 1
00093 , void * servant_upcall
00094 , CORBA::TypeCode_ptr const * exceptions
00095 , CORBA::ULong nexceptions
00096 #endif
00097
00098 ACE_ENV_ARG_DECL);
00099
00100 private:
00101
00102
00103
00104
00105
00106
00107
00108 void pre_upcall (TAO_InputCDR & cdr,
00109 TAO::Argument * const * args,
00110 size_t nargs
00111 ACE_ENV_ARG_DECL);
00112
00113
00114
00115
00116
00117
00118 void post_upcall (TAO_OutputCDR & cdr,
00119 TAO::Argument * const * args,
00120 size_t nargs
00121 ACE_ENV_ARG_DECL);
00122
00123 };
00124
00125 }
00126
00127 TAO_END_VERSIONED_NAMESPACE_DECL
00128
00129 #include "ace/post.h"
00130
00131 #endif