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
00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00030
00031 class TAO_ServantBase;
00032 class TAO_ServerRequest;
00033 class TAO_InputCDR;
00034 class TAO_OutputCDR;
00035
00036 namespace PortableServer
00037 {
00038 typedef ::TAO_ServantBase ServantBase;
00039 }
00040
00041 namespace TAO
00042 {
00043 class Argument;
00044 class Upcall_Command;
00045
00046
00047
00048
00049
00050
00051
00052 class TAO_PortableServer_Export Upcall_Wrapper
00053 {
00054 public:
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 void upcall (TAO_ServerRequest & server_request,
00080 TAO::Argument * const args[],
00081 size_t nargs,
00082 TAO::Upcall_Command & command
00083 #if TAO_HAS_INTERCEPTORS == 1
00084 , void * servant_upcall
00085 , CORBA::TypeCode_ptr const * exceptions
00086 , CORBA::ULong nexceptions
00087 #endif
00088 );
00089
00090 private:
00091
00092
00093
00094
00095
00096
00097
00098 void pre_upcall (TAO_InputCDR & cdr,
00099 TAO::Argument * const * args,
00100 size_t nargs);
00101
00102
00103
00104
00105
00106
00107 void post_upcall (TAO_OutputCDR & cdr,
00108 TAO::Argument * const * args,
00109 size_t nargs);
00110
00111 };
00112
00113 }
00114
00115 TAO_END_VERSIONED_NAMESPACE_DECL
00116
00117 #include "ace/post.h"
00118
00119 #endif