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