diff options
Diffstat (limited to 'TAO/tao/ORB.i')
-rw-r--r-- | TAO/tao/ORB.i | 128 |
1 files changed, 124 insertions, 4 deletions
diff --git a/TAO/tao/ORB.i b/TAO/tao/ORB.i index 45ffe650154..7307b6c30e9 100644 --- a/TAO/tao/ORB.i +++ b/TAO/tao/ORB.i @@ -1,9 +1,6 @@ // -*- c++ -*- // $Id$ -// String utility support. Since these are static methods we need to -// explicitly export them from the DLL. - // ---------------------------------------------------------------------- // String_var type // ---------------------------------------------------------------------- @@ -16,7 +13,7 @@ CORBA_String_var::CORBA_String_var (void) ACE_INLINE CORBA_String_var::CORBA_String_var (const char *p) - : ptr_ (CORBA::string_dup ((char *) p)) + : ptr_ (CORBA::string_dup (p)) { } @@ -123,6 +120,129 @@ CORBA_String_out::ptr (void) return this->ptr_; } +// **************************************************************** + +// ---------------------------------------------------------------------- +// String_var type +// ---------------------------------------------------------------------- + +ACE_INLINE +CORBA_WString_var::CORBA_WString_var (void) +{ + this->ptr_ = 0; +} + +ACE_INLINE +CORBA_WString_var::CORBA_WString_var (const CORBA::WChar *p) + : ptr_ (CORBA::wstring_dup (p)) +{ +} + +ACE_INLINE CORBA::WChar & +CORBA_WString_var::operator[] (CORBA::ULong index) +{ + // We need to verify bounds else raise some exception. + return this->ptr_[index]; +} + +ACE_INLINE CORBA::WChar +CORBA_WString_var::operator[] (CORBA::ULong index) const +{ + // We need to verify bounds else raise some exception. + return this->ptr_[index]; +} + +ACE_INLINE +CORBA_WString_var::operator CORBA::WChar *() +{ + return this->ptr_; +} + +ACE_INLINE +CORBA_WString_var::operator const CORBA::WChar *() const +{ + return this->ptr_; +} + +ACE_INLINE const CORBA::WChar * +CORBA_WString_var::in (void) const +{ + return this->ptr_; +} + +ACE_INLINE CORBA::WChar *& +CORBA_WString_var::inout (void) +{ + return this->ptr_; +} + +ACE_INLINE CORBA::WChar *& +CORBA_WString_var::out (void) +{ + CORBA::wstring_free (this->ptr_); + this->ptr_ = 0; + return this->ptr_; +} + +ACE_INLINE CORBA::WChar * +CORBA_WString_var::_retn (void) +{ + CORBA::WChar *temp = this->ptr_; + this->ptr_ = 0; + return temp; +} + +// ---------------------------------------------------- +// String_out type +// ---------------------------------------------------- + +ACE_INLINE +CORBA_WString_out::CORBA_WString_out (CORBA::WChar *&s) + : ptr_ (s) +{ + this->ptr_ = 0; +} + +ACE_INLINE +CORBA_WString_out::CORBA_WString_out (CORBA_WString_var &s) + : ptr_ (s.out ()) +{ +} + +ACE_INLINE +CORBA_WString_out::CORBA_WString_out (const CORBA_WString_out &s) + : ptr_ (s.ptr_) +{ +} + +ACE_INLINE CORBA_WString_out & +CORBA_WString_out::operator= (const CORBA_WString_out &s) +{ + this->ptr_ = s.ptr_; + return *this; +} + +ACE_INLINE CORBA_WString_out & +CORBA_WString_out::operator= (CORBA::WChar *s) +{ + this->ptr_ = s; + return *this; +} + +ACE_INLINE +CORBA_WString_out::operator CORBA::WChar *&() +{ + return this->ptr_; +} + +ACE_INLINE CORBA::WChar *& +CORBA_WString_out::ptr (void) +{ + return this->ptr_; +} + +// **************************************************************** + // --------------------------------------------------------------------------- // ORB specific // --------------------------------------------------------------------------- |