00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef TAO_FIXED_ARRAY_ARGUMENT_T_H
00015 #define TAO_FIXED_ARRAY_ARGUMENT_T_H
00016
00017 #include "ace/pre.h"
00018 #include "tao/Argument.h"
00019
00020 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00021 # pragma once
00022 #endif
00023
00024 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00025
00026 namespace TAO
00027 {
00028
00029
00030
00031
00032
00033
00034 template<typename S_forany,
00035 class Insert_Policy>
00036 class In_Fixed_Array_Argument_T : public InArgument
00037 {
00038 public:
00039 In_Fixed_Array_Argument_T (const typename S_forany::_slice_type * x);
00040
00041 virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
00042 #if TAO_HAS_INTERCEPTORS == 1
00043 virtual void interceptor_value (CORBA::Any *any) const;
00044 #endif
00045 typename S_forany::_slice_type const * arg (void) const;
00046
00047 private:
00048 S_forany x_;
00049 };
00050
00051
00052
00053
00054
00055
00056
00057 template<typename S_forany,
00058 class Insert_Policy>
00059 class Inout_Fixed_Array_Argument_T : public InoutArgument
00060 {
00061 public:
00062 Inout_Fixed_Array_Argument_T (typename S_forany::_slice_type *&x);
00063
00064 virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
00065 virtual CORBA::Boolean demarshal (TAO_InputCDR &);
00066 #if TAO_HAS_INTERCEPTORS == 1
00067 virtual void interceptor_value (CORBA::Any *any) const;
00068 #endif
00069 typename S_forany::_slice_type * arg (void);
00070
00071 private:
00072 S_forany x_;
00073 };
00074
00075
00076
00077
00078
00079
00080
00081 template<typename S_forany,
00082 class Insert_Policy>
00083 class Out_Fixed_Array_Argument_T : public OutArgument
00084 {
00085 public:
00086 Out_Fixed_Array_Argument_T (typename S_forany::_slice_type *& x);
00087
00088 virtual CORBA::Boolean demarshal (TAO_InputCDR &);
00089 #if TAO_HAS_INTERCEPTORS == 1
00090 virtual void interceptor_value (CORBA::Any *any) const;
00091 #endif
00092 typename S_forany::_slice_type *& arg (void);
00093
00094 private:
00095 S_forany x_;
00096 };
00097
00098
00099
00100
00101
00102
00103
00104 template<typename S_var,
00105 typename S_forany,
00106 class Insert_Policy>
00107 class Ret_Fixed_Array_Argument_T : public RetArgument
00108 {
00109 public:
00110 Ret_Fixed_Array_Argument_T (void);
00111
00112 virtual CORBA::Boolean demarshal (TAO_InputCDR &);
00113 #if TAO_HAS_INTERCEPTORS == 1
00114 virtual void interceptor_value (CORBA::Any *any) const;
00115 #endif
00116 typename S_forany::_slice_type *& arg (void);
00117
00118 typename S_forany::_slice_type * excp (void);
00119 typename S_forany::_slice_type * retn (void);
00120
00121 private:
00122 S_var x_;
00123 };
00124
00125
00126
00127
00128
00129
00130
00131 template<typename T_var,
00132 typename T_forany,
00133 class Insert_Policy>
00134 struct Fixed_Array_Arg_Traits_T
00135 {
00136 typedef typename T_forany::_slice_type * ret_type;
00137 typedef typename T_forany::_array_type const in_type;
00138 typedef typename T_forany::_array_type inout_type;
00139 typedef typename T_forany::_array_type out_type;
00140
00141 typedef In_Fixed_Array_Argument_T<T_forany,
00142 Insert_Policy> in_arg_val;
00143 typedef Inout_Fixed_Array_Argument_T<T_forany,
00144 Insert_Policy> inout_arg_val;
00145 typedef Out_Fixed_Array_Argument_T<T_forany,
00146 Insert_Policy> out_arg_val;
00147 typedef Ret_Fixed_Array_Argument_T<T_var,
00148 T_forany,
00149 Insert_Policy> ret_val;
00150 };
00151 }
00152
00153 TAO_END_VERSIONED_NAMESPACE_DECL
00154
00155 #if defined (__ACE_INLINE__)
00156 #include "tao/Fixed_Array_Argument_T.inl"
00157 #endif
00158
00159 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00160 #include "tao/Fixed_Array_Argument_T.cpp"
00161 #endif
00162
00163 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
00164 #pragma implementation ("Fixed_Array_Argument_T.cpp")
00165 #endif
00166
00167 #include "ace/post.h"
00168
00169 #endif