00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef TAO_SPECIAL_BASIC_SARGUMENT_T_H
00015 #define TAO_SPECIAL_BASIC_SARGUMENT_T_H
00016
00017 #include "ace/pre.h"
00018
00019 #include "tao/Argument.h"
00020
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif
00024
00025
00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00027
00028 namespace TAO
00029 {
00030
00031
00032
00033
00034
00035
00036 template<typename S,
00037 typename to_S,
00038 typename from_S,
00039 class Insert_Policy>
00040 class In_Special_Basic_SArgument_T : public InArgument
00041 {
00042 public:
00043 In_Special_Basic_SArgument_T (void);
00044
00045 virtual CORBA::Boolean demarshal (TAO_InputCDR &);
00046 #if TAO_HAS_INTERCEPTORS == 1
00047 virtual void interceptor_value (CORBA::Any *any) const;
00048 #endif
00049 S const & arg (void) const;
00050
00051 private:
00052 S x_;
00053 };
00054
00055
00056
00057
00058
00059
00060
00061 template<typename S,
00062 typename to_S,
00063 typename from_S,
00064 class Insert_Policy>
00065 class Inout_Special_Basic_SArgument_T : public InoutArgument
00066 {
00067 public:
00068 Inout_Special_Basic_SArgument_T (void);
00069
00070 virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
00071 virtual CORBA::Boolean demarshal (TAO_InputCDR &);
00072 #if TAO_HAS_INTERCEPTORS == 1
00073 virtual void interceptor_value (CORBA::Any *any) const;
00074 #endif
00075 S & arg (void);
00076
00077 private:
00078 S x_;
00079 };
00080
00081
00082
00083
00084
00085
00086
00087 template<typename S,
00088 typename to_S,
00089 typename from_S,
00090 class Insert_Policy>
00091 class Out_Special_Basic_SArgument_T : public OutArgument
00092 {
00093 public:
00094 Out_Special_Basic_SArgument_T (void);
00095
00096 virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
00097 #if TAO_HAS_INTERCEPTORS == 1
00098 virtual void interceptor_value (CORBA::Any *any) const;
00099 #endif
00100 S & arg (void);
00101
00102 private:
00103 S x_;
00104 };
00105
00106
00107
00108
00109
00110
00111
00112 template<typename S,
00113 typename to_S,
00114 typename from_S,
00115 class Insert_Policy>
00116 class Ret_Special_Basic_SArgument_T : public RetArgument
00117 {
00118 public:
00119 Ret_Special_Basic_SArgument_T (void);
00120
00121 virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
00122 #if TAO_HAS_INTERCEPTORS == 1
00123 virtual void interceptor_value (CORBA::Any *any) const;
00124 #endif
00125 S & arg (void);
00126
00127 private:
00128 S x_;
00129 };
00130
00131
00132
00133
00134
00135
00136
00137
00138 template<typename T, typename to_T, typename from_T, class Insert_Policy>
00139 struct Special_Basic_SArg_Traits_T
00140 {
00141 typedef T ret_type;
00142 typedef T in_type;
00143 typedef T & inout_type;
00144 typedef T & out_type;
00145
00146 typedef In_Special_Basic_SArgument_T<T,to_T,from_T,Insert_Policy> in_arg_val;
00147 typedef Inout_Special_Basic_SArgument_T<T,to_T,from_T,Insert_Policy> inout_arg_val;
00148 typedef Out_Special_Basic_SArgument_T<T,to_T,from_T,Insert_Policy> out_arg_val;
00149 typedef Ret_Special_Basic_SArgument_T<T,to_T,from_T,Insert_Policy> ret_val;
00150
00151
00152
00153 typedef T const & in_arg_type;
00154 typedef inout_type inout_arg_type;
00155 typedef out_type out_arg_type;
00156 typedef out_type ret_arg_type;
00157
00158 };
00159 }
00160
00161 TAO_END_VERSIONED_NAMESPACE_DECL
00162
00163 #if defined (__ACE_INLINE__)
00164 #include "tao/PortableServer/Special_Basic_SArgument_T.inl"
00165 #endif
00166
00167 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00168 #include "tao/PortableServer/Special_Basic_SArgument_T.cpp"
00169 #endif
00170
00171 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
00172 #pragma implementation ("Special_Basic_SArgument_T.cpp")
00173 #endif
00174
00175 #include "ace/post.h"
00176
00177 #endif