diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-05-19 20:29:37 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-05-19 20:29:37 +0000 |
commit | 343771895c69951fe766522938f6448d9c40eb3f (patch) | |
tree | 6d556d5dac04d4e74cb26aa362e6aebbaa883603 /TAO/tao/ORB.i | |
parent | 96d7f7b39c96af536735ee33c82e3096b6284a92 (diff) | |
download | ATCD-343771895c69951fe766522938f6448d9c40eb3f.tar.gz |
ChangeLogTag:Wed May 19 15:25:00 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
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 // --------------------------------------------------------------------------- |