Revert "Minor modernization of DynamicAny code"
[ACE_TAO.git] / TAO / tao / PortableServer / Vector_SArgument_T.h
blob34b07eda3b77ff9f6a9eabfb15526bad425a951c
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file Vector_SArgument_T.h
7 * @author Jeff Parsons
8 */
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)
18 # pragma once
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
23 namespace TAO
25 /**
26 * @class In_Vector_SArgument_T
28 * @brief Template class for IN skeleton argument of
29 * unbounded sequence IDL types.
32 template<typename S,
33 template <typename> class Insert_Policy>
34 class In_Vector_SArgument_T : public InArgument
36 public:
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;
43 private:
44 S x_;
47 /**
48 * @class Inout_Vector_SArgument_T
50 * @brief Template class for INOUT skeleton arg of
51 * unbounded sequence IDL types.
54 template<typename S,
55 template <typename> class Insert_Policy>
56 class Inout_Vector_SArgument_T : public InoutArgument
58 public:
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 */
66 S & arg ();
68 private:
69 S x_;
72 /**
73 * @class Out_Vector_SArgument_T
75 * @brief Template class for OUT skeleton argument of
76 * unbounded sequence IDL types.
79 template<typename S,
80 template <typename> class Insert_Policy>
81 class Out_Vector_SArgument_T : public OutArgument
83 public:
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 */
90 S & arg ();
92 private:
93 S x_;
96 /**
97 * @class Ret_Vector_SArgument_T
99 * @brief Template class for return skeleton value of
100 * unbounded sequence IDL types.
103 template<typename S,
104 template <typename> class Insert_Policy>
105 class Ret_Vector_SArgument_T : public RetArgument
107 public:
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 */
114 S & arg ();
116 private:
117 S x_;
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.
129 template<typename T,
130 template <typename> class Insert_Policy>
131 struct Vector_SArg_Traits_T
133 typedef T ret_type;
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 */