diff options
Diffstat (limited to 'TAO/tao/Fixed_Array_Argument_T.inl')
-rw-r--r-- | TAO/tao/Fixed_Array_Argument_T.inl | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/TAO/tao/Fixed_Array_Argument_T.inl b/TAO/tao/Fixed_Array_Argument_T.inl new file mode 100644 index 00000000000..de1d1bfd087 --- /dev/null +++ b/TAO/tao/Fixed_Array_Argument_T.inl @@ -0,0 +1,128 @@ +// -*- C++ -*- +// +// $Id$ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +template<typename S_forany, + class Insert_Policy> +ACE_INLINE +TAO::In_Fixed_Array_Argument_T<S_forany,Insert_Policy>:: +In_Fixed_Array_Argument_T (const typename S_forany::_slice_type * x) + : x_ ( +#if (defined (__IBMCPP__) && (__IBMCPP__ <= 600)) + // @@ (OO) IMBCPP 6 can't handle the const_cast<> in the + // multi-dimensional array case so C-style + // "sledgehammer" cast instead (reinterpret_cast<> + // doesn't work either). It's not clear if this is + // really the right thing to do but the code won't + // compile without it. + (S_forany::slice_type *) x +#else + const_cast<typename S_forany::_slice_type *> (x) +#endif /* IBMCPP <= 600 */ + ) +{ +} + +template<typename S_forany, + class Insert_Policy> +ACE_INLINE +const typename S_forany::_slice_type * +TAO::In_Fixed_Array_Argument_T<S_forany,Insert_Policy>::arg (void) const +{ + return this->x_.in (); +} + +template<typename S_forany, + class Insert_Policy> +ACE_INLINE +TAO::In_Fixed_Array_Clonable_Argument_T<S_forany,Insert_Policy>:: +In_Fixed_Array_Clonable_Argument_T (const typename S_forany::_slice_type * x) + : In_Fixed_Array_Argument_T<S_forany,Insert_Policy> (x), + is_clone_ (false) +{ +} + + +// =========================================================================== + +template<typename S_forany, + class Insert_Policy> +ACE_INLINE +TAO::Inout_Fixed_Array_Argument_T<S_forany,Insert_Policy>:: +Inout_Fixed_Array_Argument_T (typename S_forany::_slice_type *& x) + : x_ (x) +{} + +template<typename S_forany, + class Insert_Policy> +ACE_INLINE +typename S_forany::_slice_type * +TAO::Inout_Fixed_Array_Argument_T<S_forany,Insert_Policy>::arg (void) +{ + return this->x_.inout (); +} + +// =========================================================================== + +template<typename S_forany, + class Insert_Policy> +ACE_INLINE +TAO::Out_Fixed_Array_Argument_T< + S_forany, + Insert_Policy + >::Out_Fixed_Array_Argument_T (typename S_forany::_slice_type *&x) + : x_ (x) +{} + +template<typename S_forany, + class Insert_Policy> +ACE_INLINE +typename S_forany::_slice_type *& +TAO::Out_Fixed_Array_Argument_T<S_forany,Insert_Policy>::arg (void) +{ + return this->x_.out (); +} + +// =========================================================================== + +template<typename S_var, + typename S_forany, + class Insert_Policy> +ACE_INLINE +TAO::Ret_Fixed_Array_Argument_T<S_var,S_forany,Insert_Policy>:: +Ret_Fixed_Array_Argument_T (void) +{} + +template<typename S_var, + typename S_forany, + class Insert_Policy> +ACE_INLINE +typename S_forany::_slice_type *& +TAO::Ret_Fixed_Array_Argument_T<S_var,S_forany,Insert_Policy>::arg (void) +{ + return this->x_._retn_arg (); +} + +template<typename S_var, + typename S_forany, + class Insert_Policy> +ACE_INLINE +typename S_forany::_slice_type * +TAO::Ret_Fixed_Array_Argument_T<S_var,S_forany,Insert_Policy>::excp (void) +{ + return this->x_.ptr (); +} + +template<typename S_var, + typename S_forany, + class Insert_Policy> +ACE_INLINE +typename S_forany::_slice_type * +TAO::Ret_Fixed_Array_Argument_T<S_var,S_forany,Insert_Policy>::retn (void) +{ + return this->x_._retn (); +} + +TAO_END_VERSIONED_NAMESPACE_DECL |