diff options
Diffstat (limited to 'TAO/tao/Managed_Types.i')
-rw-r--r-- | TAO/tao/Managed_Types.i | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/TAO/tao/Managed_Types.i b/TAO/tao/Managed_Types.i index 3a0ebc62897..88aac12835e 100644 --- a/TAO/tao/Managed_Types.i +++ b/TAO/tao/Managed_Types.i @@ -192,12 +192,13 @@ TAO_SeqElem_String_Manager::_retn (void) return temp; } +#if 0 /* To be included once we have support for WString_var */ // **************************************************************** // default CTOR initializes to empty string ACE_INLINE TAO_WString_Manager::TAO_WString_Manager (void) - : ptr_ (0) // @@ CORBA::wstring_dup ("")) + : ptr_ (CORBA::wstring_dup ("")) { } @@ -227,6 +228,15 @@ TAO_WString_Manager::operator= (const TAO_WString_Manager &rhs) return *this; } +// assignment from CORBA::String_var makes a copy +ACE_INLINE TAO_WString_Manager& +TAO_WString_Manager::operator= (const CORBA::String_var &var) +{ + CORBA::string_free (this->ptr_); + this->ptr_ = CORBA::wstring_dup (var.in ()); + return *this; +} + // assignment from const CORBA::WChar* makes a copy ACE_INLINE TAO_WString_Manager & TAO_WString_Manager::operator= (const CORBA::WChar * p) @@ -282,9 +292,8 @@ TAO_WString_Manager::_retn (void) // **************************************************************** ACE_INLINE -TAO_SeqElem_WString_Manager:: - TAO_SeqElem_WString_Manager (CORBA::WChar **buffer, - CORBA::Boolean release) +TAO_SeqElem_WString_Manager::TAO_SeqElem_WString_Manager (CORBA::WChar **buffer, + CORBA::Boolean release) : ptr_ (buffer), release_ (release) { @@ -308,6 +317,16 @@ TAO_SeqElem_WString_Manager::operator= (const TAO_SeqElem_WString_Manager &rhs) return *this; } +// assignment from String_var +ACE_INLINE TAO_SeqElem_WString_Manager& +TAO_SeqElem_WString_Manager::operator= (const CORBA::wstring_var &var) +{ + if (this->release_) + CORBA::wstring_free (*this->ptr_); + *this->ptr_ = CORBA::wstring_dup (var.in ()); + return *this; +} + // assignment from const CORBA::WChar* will make copy ACE_INLINE TAO_SeqElem_WString_Manager & TAO_SeqElem_WString_Manager::operator= (const CORBA::WChar *p) @@ -361,3 +380,5 @@ TAO_SeqElem_WString_Manager::_retn (void) *this->ptr_ = 0; return temp; } + +#endif /* 0 */ |