// $Id$ #ifndef TAO_FIXED_ARRAY_ARGUMENT_T_CPP #define TAO_FIXED_ARRAY_ARGUMENT_T_CPP #include "tao/Fixed_Array_Argument_T.h" #if !defined (__ACE_INLINE__) #include "tao/Fixed_Array_Argument_T.inl" #endif /* __ACE_INLINE__ */ TAO_BEGIN_VERSIONED_NAMESPACE_DECL template class Insert_Policy> CORBA::Boolean TAO::In_Fixed_Array_Argument_T::marshal ( TAO_OutputCDR & cdr ) { return cdr << this->x_; } #if TAO_HAS_INTERCEPTORS == 1 template class Insert_Policy> void TAO::In_Fixed_Array_Argument_T:: interceptor_value (CORBA::Any *any) const { Insert_Policy::any_insert (any, this->x_); } #endif /* TAO_HAS_INTERCEPTORS */ template class Insert_Policy> TAO::In_Fixed_Array_Clonable_Argument_T::~In_Fixed_Array_Clonable_Argument_T (void) { if (this->is_clone_) { typedef TAO::details::array_traits ARRAY_TRAITS; typename ARRAY_TRAITS::slice_type * tmp = const_cast(this->x_.in ()); ARRAY_TRAITS::free (tmp); } } template class Insert_Policy> TAO::Argument* TAO::In_Fixed_Array_Clonable_Argument_T::clone (void) { typedef TAO::details::array_traits ARRAY_TRAITS; typename ARRAY_TRAITS::slice_type * tmp_ptr = 0; ACE_ALLOCATOR_RETURN (tmp_ptr, ARRAY_TRAITS::alloc (), 0); ARRAY_TRAITS::copy (tmp_ptr, this->x_.in ()); In_Fixed_Array_Clonable_Argument_T* clone_arg = new In_Fixed_Array_Clonable_Argument_T (tmp_ptr); clone_arg->is_clone_ = true; return clone_arg; } // =========================================================== template class Insert_Policy> CORBA::Boolean TAO::Inout_Fixed_Array_Argument_T::marshal ( TAO_OutputCDR & cdr) { return cdr << this->x_; } template class Insert_Policy> CORBA::Boolean TAO::Inout_Fixed_Array_Argument_T::demarshal ( TAO_InputCDR & cdr) { return cdr >> this->x_; } #if TAO_HAS_INTERCEPTORS == 1 template class Insert_Policy> void TAO::Inout_Fixed_Array_Argument_T:: interceptor_value (CORBA::Any *any) const { Insert_Policy::any_insert (any, this->x_); } #endif /* TAO_HAS_INTERCEPTORS */ // ============================================================== template class Insert_Policy> CORBA::Boolean TAO::Out_Fixed_Array_Argument_T::demarshal ( TAO_InputCDR & cdr) { return cdr >> this->x_; } #if TAO_HAS_INTERCEPTORS == 1 template class Insert_Policy> void TAO::Out_Fixed_Array_Argument_T:: interceptor_value (CORBA::Any *any) const { Insert_Policy::any_insert (any, this->x_); } #endif /* TAO_HAS_INTERCEPTORS */ // ============================================================ template class Insert_Policy> CORBA::Boolean TAO::Ret_Fixed_Array_Argument_T:: demarshal (TAO_InputCDR & cdr) { typedef TAO::Array_Traits ARRAY_TRAITS; typename S_forany::_slice_type * tmp_ptr = 0; ACE_ALLOCATOR_RETURN (tmp_ptr, ARRAY_TRAITS::alloc (), false); this->x_ = tmp_ptr; S_forany tmp (this->x_.ptr ()); return cdr >> tmp; } #if TAO_HAS_INTERCEPTORS == 1 template class Insert_Policy> void TAO::Ret_Fixed_Array_Argument_T:: interceptor_value (CORBA::Any *any) const { Insert_Policy::any_insert (any, S_forany (this->x_.ptr ())); } #endif /* TAO_HAS_INTERCEPTORS */ TAO_END_VERSIONED_NAMESPACE_DECL #endif /* TAO_FIXED_ARRAY_ARGUMENT_T_CPP */