3 //=============================================================================
5 * @file Var_Array_SArgument_T.h
7 * @authors Jeff Parsons, Carlos O'Ryan and Ossama Othman
9 //=============================================================================
11 #ifndef TAO_VAR_ARRAY_SARGUMENT_T_H
12 #define TAO_VAR_ARRAY_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_Var_Array_SArgument_T
29 * @brief IN skeleton argument of variable size element array.
32 template<typename S_forany
,
33 template <typename
> class Insert_Policy
>
34 class In_Var_Array_SArgument_T
: public InArgument
37 In_Var_Array_SArgument_T ();
39 virtual CORBA::Boolean
demarshal (TAO_InputCDR
&);
40 #if TAO_HAS_INTERCEPTORS == 1
41 virtual void interceptor_value (CORBA::Any
*any
) const;
42 #endif /* TAO_HAS_INTERCEPTORS == 1 */
43 typename
S_forany::_slice_type
const * arg () const;
46 mutable typename
S_forany::_array_type x_
;
50 * @class Inout_Var_Array_SArgument_T
52 * @brief INOUT skeleton argument of variable size element array.
55 template<typename S_forany
,
56 template <typename
> class Insert_Policy
>
57 class Inout_Var_Array_SArgument_T
: public InoutArgument
60 Inout_Var_Array_SArgument_T ();
62 virtual CORBA::Boolean
marshal (TAO_OutputCDR
&cdr
);
63 virtual CORBA::Boolean
demarshal (TAO_InputCDR
&);
64 #if TAO_HAS_INTERCEPTORS == 1
65 virtual void interceptor_value (CORBA::Any
*any
) const;
66 #endif /* TAO_HAS_INTERCEPTORS == 1 */
67 typename
S_forany::_slice_type
* arg ();
70 typename
S_forany::_array_type x_
;
74 * @class Out_Var_Array_SArgument_T
76 * @brief OUT skeleton argument of variable size element array.
79 template<typename S_var
,
81 template <typename
> class Insert_Policy
>
82 class Out_Var_Array_SArgument_T
: public OutArgument
85 Out_Var_Array_SArgument_T ();
87 virtual CORBA::Boolean
marshal (TAO_OutputCDR
&cdr
);
88 #if TAO_HAS_INTERCEPTORS == 1
89 virtual void interceptor_value (CORBA::Any
*any
) const;
90 #endif /* TAO_HAS_INTERCEPTORS == 1 */
91 typename
S_forany::_slice_type
*& arg ();
98 * @class Ret_Var_Array_SArgument_T
100 * @brief Skeleton value of variable size element array.
103 template<typename S_var
,
105 template <typename
> class Insert_Policy
>
106 class Ret_Var_Array_SArgument_T
: public RetArgument
109 Ret_Var_Array_SArgument_T ();
111 virtual CORBA::Boolean
marshal (TAO_OutputCDR
&cdr
);
112 #if TAO_HAS_INTERCEPTORS == 1
113 virtual void interceptor_value (CORBA::Any
*any
) const;
114 #endif /* TAO_HAS_INTERCEPTORS == 1 */
115 typename
S_forany::_slice_type
*& arg ();
122 * @struct Var_Array_SArg_Traits_T
124 * @brief Argument traits of variable size element array.
127 template<typename T_out
,
129 template <typename
> class Insert_Policy
>
130 struct Var_Array_SArg_Traits_T
132 typedef typename
T_forany::_slice_type
* ret_type
;
133 typedef const typename
T_forany::_array_type in_type
;
134 typedef typename
T_forany::_array_type inout_type
;
135 typedef T_out out_type
;
137 typedef In_Var_Array_SArgument_T
<T_forany
,
138 Insert_Policy
> in_arg_val
;
139 typedef Inout_Var_Array_SArgument_T
<T_forany
,
140 Insert_Policy
> inout_arg_val
;
141 typedef Out_Var_Array_SArgument_T
<typename
T_out::_var_type
,
143 Insert_Policy
> out_arg_val
;
144 typedef Ret_Var_Array_SArgument_T
<typename
T_out::_var_type
,
146 Insert_Policy
> ret_val
;
148 // Typedefs corresponding to return value of arg() method in both
149 // the client and server side argument class templates.
150 typedef typename
T_forany::_slice_type
const * in_arg_type
;
151 typedef ret_type inout_arg_type
;
152 typedef ret_type
& out_arg_type
;
153 typedef ret_type
& ret_arg_type
;
157 TAO_END_VERSIONED_NAMESPACE_DECL
159 #if defined (__ACE_INLINE__)
160 #include "tao/PortableServer/Var_Array_SArgument_T.inl"
161 #endif /* __ACE_INLINE__ */
163 #include "tao/PortableServer/Var_Array_SArgument_T.cpp"
165 #include /**/ "ace/post.h"
167 #endif /* TAO_VAR_ARRAY_SARGUMENT_T_H */