=default for generated implementation copy ctor
[ACE_TAO.git] / TAO / tao / PortableServer / UB_String_SArgument_T.h
blob619a311df04f3b1ab7ba88f8be9fd41dca1a0a8f
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file UB_String_SArgument_T.h
7 * @authors Jeff Parsons, Carlos O'Ryan and Ossama Othman
8 */
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)
19 # pragma once
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
24 namespace TAO
26 /**
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
35 public:
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;
44 private:
45 S_var x_;
48 /**
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
57 public:
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 */
65 S *& arg ();
67 private:
68 S_var x_;
71 /**
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
80 public:
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 */
87 S *& arg ();
89 private:
90 S_var x_;
93 /**
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
102 public:
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 */
109 S *& arg ();
111 private:
112 S_var x_;
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 */