3 //=============================================================================
5 * @file Special_Basic_Argument_T.h
7 * @authors Jeff Parsons and Carlos O'Ryan
9 //=============================================================================
12 #ifndef TAO_SPECIAL_BASIC_ARGUMENT_T_H
13 #define TAO_SPECIAL_BASIC_ARGUMENT_T_H
15 #include /**/ "ace/pre.h"
17 #include "tao/Argument.h"
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
28 * @class In_Special_Basic_Argument_T
30 * @brief Template class for IN stub argument of (w)char/boolean/octet.
36 template <typename
> class Insert_Policy
>
37 class In_Special_Basic_Argument_T
: public InArgument
40 In_Special_Basic_Argument_T (S
const &);
42 virtual CORBA::Boolean
marshal (TAO_OutputCDR
&cdr
);
43 #if TAO_HAS_INTERCEPTORS == 1
44 virtual void interceptor_value (CORBA::Any
*any
) const;
45 #endif /* TAO_HAS_INTERCEPTORS == 1 */
46 S
const & arg () const;
53 * @class In_Special_Basic_Clonable_Argument_T
55 * @brief Template class for IN stub argument of (w)char/boolean/octet.
60 template <typename
> class Insert_Policy
>
61 class In_Special_Basic_Clonable_Argument_T
:
62 public In_Special_Basic_Argument_T
<S
, to_S
, from_S
, Insert_Policy
>
65 In_Special_Basic_Clonable_Argument_T (S
const &);
66 virtual ~In_Special_Basic_Clonable_Argument_T ();
68 virtual Argument
* clone ();
75 * @class Inout_Special_Basic_Argument_T
77 * @brief Template class for INOUT stub argument of (w)char/boolean/octet.
82 template <typename
> class Insert_Policy
>
83 class Inout_Special_Basic_Argument_T
: public InoutArgument
86 Inout_Special_Basic_Argument_T (S
& x
);
88 virtual CORBA::Boolean
marshal (TAO_OutputCDR
&cdr
);
89 virtual CORBA::Boolean
demarshal (TAO_InputCDR
&);
90 #if TAO_HAS_INTERCEPTORS == 1
91 virtual void interceptor_value (CORBA::Any
*any
) const;
92 #endif /* TAO_HAS_INTERCEPTORS == 1 */
100 * @class Out_Special_Basic_Argument_T
102 * @brief Template class for OUT stub argument of (w)char/boolean/octet.
107 template <typename
> class Insert_Policy
>
108 class Out_Special_Basic_Argument_T
: public OutArgument
111 Out_Special_Basic_Argument_T (S
& x
);
113 virtual CORBA::Boolean
demarshal (TAO_InputCDR
&);
114 #if TAO_HAS_INTERCEPTORS == 1
115 virtual void interceptor_value (CORBA::Any
*any
) const;
116 #endif /* TAO_HAS_INTERCEPTORS == 1 */
124 * @class Ret_Basic_Argument_T
126 * @brief Template class for return stub value of (w)char/boolean/octet.
131 template <typename
> class Insert_Policy
>
132 class Ret_Special_Basic_Argument_T
: public RetArgument
135 Ret_Special_Basic_Argument_T ();
137 virtual CORBA::Boolean
demarshal (TAO_InputCDR
&);
138 #if TAO_HAS_INTERCEPTORS == 1
139 virtual void interceptor_value (CORBA::Any
*any
) const;
140 #endif /* TAO_HAS_INTERCEPTORS == 1 */
151 * @struct Special_Basic_Tag
153 * @brief Struct for basic IDL type arguments id tag.
156 struct TAO_Export Special_Basic_Tag
{};
159 * @struct Special_Basic_Arg_Traits_T
161 * @brief Template class for stub argument traits of (w)char/boolean/octet.
166 template <typename
> class Insert_Policy
>
167 struct Special_Basic_Arg_Traits_T
171 typedef T
& inout_type
;
172 typedef T
& out_type
;
174 typedef In_Special_Basic_Argument_T
<T
,to_T
,from_T
,Insert_Policy
> in_arg_val
;
175 typedef In_Special_Basic_Clonable_Argument_T
<T
,to_T
,from_T
,Insert_Policy
>
177 typedef Inout_Special_Basic_Argument_T
<T
,to_T
,from_T
,Insert_Policy
> inout_arg_val
;
178 typedef Out_Special_Basic_Argument_T
<T
,to_T
,from_T
,Insert_Policy
> out_arg_val
;
179 typedef Ret_Special_Basic_Argument_T
<T
,to_T
,from_T
,Insert_Policy
> ret_val
;
181 typedef Special_Basic_Tag idl_tag
;
185 TAO_END_VERSIONED_NAMESPACE_DECL
187 #if defined (__ACE_INLINE__)
188 #include "tao/Special_Basic_Argument_T.inl"
189 #endif /* __ACE_INLINE__ */
191 #include "tao/Special_Basic_Argument_T.cpp"
193 #include /**/ "ace/post.h"
195 #endif /* TAO_SPECIAL_BASIC_ARGUMENT_T_H */