summaryrefslogtreecommitdiff
path: root/TAO/tao/ORB.i
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/ORB.i')
-rw-r--r--TAO/tao/ORB.i128
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
// ---------------------------------------------------------------------------