Merge pull request #2218 from jwillemsen/jwi-pthreadsigmask
[ACE_TAO.git] / TAO / tao / PortableServer / Fixed_Array_SArgument_T.h
blob8adce96633b633cf9504e48889c5926396f31210
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file Fixed_Array_SArgument_T.h
7 * @authors Jeff Parsons, Carlos O'Ryan and Ossama Othman
8 */
9 //=============================================================================
12 #ifndef TAO_FIXED_ARRAY_SARGUMENT_T_H
13 #define TAO_FIXED_ARRAY_SARGUMENT_T_H
15 #include /**/ "ace/pre.h"
17 #include "tao/Argument.h"
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 # pragma once
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
24 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
26 namespace TAO
28 /**
29 * @class In_Fixed_Array_SArgument_T
31 * @brief IN skeleton argument of fixed size element array.
34 template<typename S_forany,
35 template <typename> class Insert_Policy>
36 class In_Fixed_Array_SArgument_T : public InArgument
38 public:
39 In_Fixed_Array_SArgument_T ();
41 virtual CORBA::Boolean demarshal (TAO_InputCDR &);
42 #if TAO_HAS_INTERCEPTORS == 1
43 virtual void interceptor_value (CORBA::Any *any) const;
44 #endif /* TAO_HAS_INTERCEPTORS == 1 */
45 typename S_forany::_slice_type const * arg () const;
47 private:
48 mutable typename S_forany::_array_type x_;
51 /**
52 * @class Inout_Fixed_Array_SArgument_T
54 * @brief INOUT skeleton argument of fixed size element array.
56 template<typename S_forany,
57 template <typename> class Insert_Policy>
58 class Inout_Fixed_Array_SArgument_T : public InoutArgument
60 public:
61 Inout_Fixed_Array_SArgument_T ();
63 virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
64 virtual CORBA::Boolean demarshal (TAO_InputCDR &cdr);
65 #if TAO_HAS_INTERCEPTORS == 1
66 virtual void interceptor_value (CORBA::Any *any) const;
67 #endif /* TAO_HAS_INTERCEPTORS == 1 */
68 typename S_forany::_slice_type * arg ();
70 private:
71 mutable typename S_forany::_array_type x_;
74 /**
75 * @class Out_Fixed_Array_SArgument_T
77 * @brief OUT skeleton argument of fixed size element array.
79 template<typename S_forany,
80 template <typename> class Insert_Policy>
81 class Out_Fixed_Array_SArgument_T : public OutArgument
83 public:
84 Out_Fixed_Array_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 typename S_forany::_slice_type * arg ();
92 private:
93 mutable typename S_forany::_array_type x_;
96 /**
97 * @class Ret_Fixed_Array_SArgument_T
99 * @brief Skeleton value of fixed size element array.
102 template<typename S_var,
103 typename S_forany,
104 template <typename> class Insert_Policy>
105 class Ret_Fixed_Array_SArgument_T : public RetArgument
107 public:
108 Ret_Fixed_Array_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 typename S_forany::_slice_type *& arg ();
116 private:
117 S_var x_;
121 * @struct Fixed_Array_Arg_Traits_T
123 * @brief Argument traits of fixed size element array.
126 template<typename T_var,
127 typename T_forany,
128 template <typename> class Insert_Policy>
129 struct Fixed_Array_SArg_Traits_T
131 typedef typename T_forany::_slice_type * ret_type;
132 typedef const typename T_forany::_array_type in_type;
133 typedef typename T_forany::_array_type inout_type;
134 typedef typename T_forany::_array_type out_type;
136 typedef In_Fixed_Array_SArgument_T<T_forany,
137 Insert_Policy> in_arg_val;
138 typedef Inout_Fixed_Array_SArgument_T<T_forany,
139 Insert_Policy> inout_arg_val;
140 typedef Out_Fixed_Array_SArgument_T<T_forany,
141 Insert_Policy> out_arg_val;
142 typedef Ret_Fixed_Array_SArgument_T<T_var,
143 T_forany,
144 Insert_Policy> ret_val;
146 // Typedefs corresponding to return value of arg() method in both
147 // the client and server side argument class templates.
148 typedef typename T_forany::_slice_type const * in_arg_type;
149 typedef ret_type inout_arg_type;
150 typedef ret_type out_arg_type;
151 typedef ret_type & ret_arg_type;
155 TAO_END_VERSIONED_NAMESPACE_DECL
157 #if defined (__ACE_INLINE__)
158 #include "tao/PortableServer/Fixed_Array_SArgument_T.inl"
159 #endif /* __ACE_INLINE__ */
161 #include "tao/PortableServer/Fixed_Array_SArgument_T.cpp"
163 #include /**/ "ace/post.h"
165 #endif /* TAO_FIXED_ARRAY_SARGUMENT_T_H */