// $Id$ #ifndef TAO_UB_STRING_ARGUMENT_T_CPP #define TAO_UB_STRING_ARGUMENT_T_CPP #include "tao/UB_String_Argument_T.h" #include "tao/CDR.h" #include "ace/OS_NS_string.h" #if !defined (__ACE_INLINE__) #include "tao/UB_String_Argument_T.inl" #endif /* __ACE_INLINE__ */ TAO_BEGIN_VERSIONED_NAMESPACE_DECL template CORBA::Boolean TAO::In_UB_String_Argument_T::marshal ( TAO_OutputCDR &cdr ) { return cdr << this->x_; } #if TAO_HAS_INTERCEPTORS == 1 template void TAO::In_UB_String_Argument_T::interceptor_value ( CORBA::Any *any ) const { Insert_Policy::any_insert (any, this->x_); } #endif /* TAO_HAS_INTERCEPTORS */ template TAO::In_UB_String_Clonable_Argument_T::~In_UB_String_Clonable_Argument_T (void) { if (this->is_clone_) { typename S_var::s_traits::char_type * tmp = const_cast (this->x_); delete [] tmp; } } template TAO::Argument* TAO::In_UB_String_Clonable_Argument_T::clone () { size_t len = ACE_OS::strlen (this->x_); typename S_var::s_traits::char_type * clone_x = new typename S_var::s_traits::char_type [len + 1]; ACE_OS::strncpy (clone_x, this->x_, len); clone_x[len] = '\0'; In_UB_String_Clonable_Argument_T* clone_arg = new In_UB_String_Clonable_Argument_T (clone_x); clone_arg->is_clone_ = true; return clone_arg; } // =========================================================== template CORBA::Boolean TAO::Inout_UB_String_Argument_T::marshal ( TAO_OutputCDR &cdr ) { return cdr << this->x_; } template CORBA::Boolean TAO::Inout_UB_String_Argument_T::demarshal ( TAO_InputCDR & cdr ) { delete [] this->x_; return cdr >> this->x_; } #if TAO_HAS_INTERCEPTORS == 1 template void TAO::Inout_UB_String_Argument_T::interceptor_value ( CORBA::Any *any ) const { Insert_Policy::any_insert ( any, this->x_ ); } #endif /* TAO_HAS_INTERCEPTORS */ // ============================================================== template CORBA::Boolean TAO::Out_UB_String_Argument_T::demarshal (TAO_InputCDR & cdr) { return cdr >> this->x_; } #if TAO_HAS_INTERCEPTORS == 1 template void TAO::Out_UB_String_Argument_T::interceptor_value ( CORBA::Any *any ) const { Insert_Policy::any_insert ( any, this->x_ ); } #endif /* TAO_HAS_INTERCEPTORS */ // ============================================================ template CORBA::Boolean TAO::Ret_UB_String_Argument_T::demarshal (TAO_InputCDR & cdr) { return cdr >> this->x_.out (); } #if TAO_HAS_INTERCEPTORS == 1 template void TAO::Ret_UB_String_Argument_T::interceptor_value ( CORBA::Any *any) const { Insert_Policy::any_insert (any, this->x_.in ()); } #endif /* TAO_HAS_INTERCEPTORS */ TAO_END_VERSIONED_NAMESPACE_DECL #endif /* TAO_UB_STRING_ARGUMENT_T_CPP */