3 //=============================================================================
5 * @file Vector_SArgument_T.h
9 //=============================================================================
11 #ifndef TAO_VECTOR_SARGUMENT_T_H
12 #define TAO_VECTOR_SARGUMENT_T_H
14 #include /**/ "ace/pre.h"
15 #include "tao/Argument.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
26 * @class In_Vector_SArgument_T
28 * @brief Template class for IN skeleton argument of
29 * unbounded sequence IDL types.
33 template <typename
> class Insert_Policy
>
34 class In_Vector_SArgument_T
: public InArgument
37 virtual CORBA::Boolean
demarshal (TAO_InputCDR
&);
38 #if TAO_HAS_INTERCEPTORS == 1
39 virtual void interceptor_value (CORBA::Any
*any
) const;
40 #endif /* TAO_HAS_INTERCEPTORS == 1 */
41 S
const & arg () const;
48 * @class Inout_Vector_SArgument_T
50 * @brief Template class for INOUT skeleton arg of
51 * unbounded sequence IDL types.
55 template <typename
> class Insert_Policy
>
56 class Inout_Vector_SArgument_T
: public InoutArgument
59 Inout_Vector_SArgument_T ();
61 virtual CORBA::Boolean
marshal (TAO_OutputCDR
&cdr
);
62 virtual CORBA::Boolean
demarshal (TAO_InputCDR
&);
63 #if TAO_HAS_INTERCEPTORS == 1
64 virtual void interceptor_value (CORBA::Any
*any
) const;
65 #endif /* TAO_HAS_INTERCEPTORS == 1 */
73 * @class Out_Vector_SArgument_T
75 * @brief Template class for OUT skeleton argument of
76 * unbounded sequence IDL types.
80 template <typename
> class Insert_Policy
>
81 class Out_Vector_SArgument_T
: public OutArgument
84 Out_Vector_SArgument_T ();
86 virtual CORBA::Boolean
marshal (TAO_OutputCDR
&cdr
);
87 #if TAO_HAS_INTERCEPTORS == 1
88 virtual void interceptor_value (CORBA::Any
*any
) const;
89 #endif /* TAO_HAS_INTERCEPTORS == 1 */
97 * @class Ret_Vector_SArgument_T
99 * @brief Template class for return skeleton value of
100 * unbounded sequence IDL types.
104 template <typename
> class Insert_Policy
>
105 class Ret_Vector_SArgument_T
: public RetArgument
108 Ret_Vector_SArgument_T ();
110 virtual CORBA::Boolean
marshal (TAO_OutputCDR
&cdr
);
111 #if TAO_HAS_INTERCEPTORS == 1
112 virtual void interceptor_value (CORBA::Any
*any
) const;
113 #endif /* TAO_HAS_INTERCEPTORS == 1 */
121 * @struct Vector_SArg_Traits_T
123 * @brief Template class for skeleton argument traits of
124 * sequence IDL types, when the STL mapping is used by
125 * the IDL compiler. The ret_type and out_type typedefs
126 * are different from Vector_SArg_Traits_T.
130 template <typename
> class Insert_Policy
>
131 struct Vector_SArg_Traits_T
134 typedef const T
& in_type
;
135 typedef T
& inout_type
;
136 typedef T
& out_type
;
138 typedef In_Vector_SArgument_T
<T
,Insert_Policy
> in_arg_val
;
139 typedef Inout_Vector_SArgument_T
<T
,Insert_Policy
> inout_arg_val
;
140 typedef Out_Vector_SArgument_T
<T
,Insert_Policy
> out_arg_val
;
141 typedef Ret_Vector_SArgument_T
<T
,Insert_Policy
> ret_val
;
143 // Typedefs corresponding to return value of arg() method in both
144 // the client and server side argument class templates.
145 typedef in_type in_arg_type
;
146 typedef inout_type inout_arg_type
;
147 typedef ret_type
& out_arg_type
;
148 typedef ret_type
& ret_arg_type
;
152 TAO_END_VERSIONED_NAMESPACE_DECL
154 #if defined (__ACE_INLINE__)
155 #include "tao/PortableServer/Vector_SArgument_T.inl"
156 #endif /* __ACE_INLINE__ */
158 #include "tao/PortableServer/Vector_SArgument_T.cpp"
160 #include /**/ "ace/post.h"
162 #endif /* TAO_VECTOR_SARGUMENT_T_H */