3 //=============================================================================
5 * @file UB_String_SArgument_T.h
7 * @authors Jeff Parsons, Carlos O'Ryan and Ossama Othman
9 //=============================================================================
11 #ifndef TAO_UB_STRING_SARGUMENT_T_H
12 #define TAO_UB_STRING_SARGUMENT_T_H
14 #include /**/ "ace/pre.h"
16 #include "tao/Argument.h"
18 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
27 * @class In_UB_String_SArgument_T
29 * @brief Template class for IN skeleton UB (w)string argument.
32 template<typename S
, typename S_var
>
33 class In_UB_String_SArgument_T
: public InArgument
36 In_UB_String_SArgument_T ();
38 virtual CORBA::Boolean
demarshal (TAO_InputCDR
&);
39 #if TAO_HAS_INTERCEPTORS == 1
40 virtual void interceptor_value (CORBA::Any
*any
) const;
41 #endif /* TAO_HAS_INTERCEPTORS == 1 */
42 S
const * arg () const;
49 * @class Inout_UB_String_SArgument_T
51 * @brief Template class for INOUT skeleton UB (w)string argument.
54 template<typename S
, typename S_var
>
55 class Inout_UB_String_SArgument_T
: public InoutArgument
58 Inout_UB_String_SArgument_T ();
60 virtual CORBA::Boolean
marshal (TAO_OutputCDR
&cdr
);
61 virtual CORBA::Boolean
demarshal (TAO_InputCDR
&);
62 #if TAO_HAS_INTERCEPTORS == 1
63 virtual void interceptor_value (CORBA::Any
*any
) const;
64 #endif /* TAO_HAS_INTERCEPTORS == 1 */
72 * @class Out_UB_String_SArgument_T
74 * @brief Template class for INOUT skeleton UB (w)string argument.
77 template<typename S
, typename S_var
>
78 class Out_UB_String_SArgument_T
: public OutArgument
81 Out_UB_String_SArgument_T ();
83 virtual CORBA::Boolean
marshal (TAO_OutputCDR
&cdr
);
84 #if TAO_HAS_INTERCEPTORS == 1
85 virtual void interceptor_value (CORBA::Any
*any
) const;
86 #endif /* TAO_HAS_INTERCEPTORS == 1 */
94 * @class Ret_UB_String_SArgument_T
96 * @brief Template class for return skeleton value of UB (w)string.
99 template<typename S
, typename S_var
>
100 class Ret_UB_String_SArgument_T
: public RetArgument
103 Ret_UB_String_SArgument_T ();
105 virtual CORBA::Boolean
marshal (TAO_OutputCDR
&cdr
);
106 #if TAO_HAS_INTERCEPTORS == 1
107 virtual void interceptor_value (CORBA::Any
*any
) const;
108 #endif /* TAO_HAS_INTERCEPTORS == 1 */
116 * @struct UB_String_SArg_Traits_T
118 * @brief Template class for argument traits of unbounded (w)strings.
121 template<typename T
, typename T_var
, typename T_out
>
122 struct UB_String_SArg_Traits_T
124 typedef T
* ret_type
;
125 typedef const T
* in_type
;
126 typedef T
*& inout_type
;
127 typedef T_out out_type
;
129 typedef In_UB_String_SArgument_T
<T
,T_var
> in_arg_val
;
130 typedef Inout_UB_String_SArgument_T
<T
,T_var
> inout_arg_val
;
131 typedef Out_UB_String_SArgument_T
<T
,T_var
> out_arg_val
;
132 typedef Ret_UB_String_SArgument_T
<T
,T_var
> ret_val
;
134 // Typedefs corresponding to return value of arg() method in both
135 // the client and server side argument class templates.
136 typedef in_type in_arg_type
;
137 typedef inout_type inout_arg_type
;
138 typedef inout_type out_arg_type
;
139 typedef inout_type ret_arg_type
;
143 TAO_END_VERSIONED_NAMESPACE_DECL
145 #if defined (__ACE_INLINE__)
146 #include "tao/PortableServer/UB_String_SArgument_T.inl"
147 #endif /* __ACE_INLINE__ */
149 #include "tao/PortableServer/UB_String_SArgument_T.cpp"
151 #include /**/ "ace/post.h"
153 #endif /* TAO_UB_STRING_SARGUMENT_T_H */