DynamicIString Class Reference

#include <awStringShared.h>

List of all members.

Public Member Functions

  DynamicIString ()
  DynamicIString (const wchar_t *str)
  DynamicIString (const awString::IString &str)
  DynamicIString (const DynamicIString &rhs)
  ~DynamicIString ()
void  operator= (const DynamicIString &rhs)
bool  isValid () const
int  refs () const
const awString::IString *  operator-> () const
const awString::IString &  operator* () const
bool  operator== (const DynamicIString &rhs) const
bool  operator!= (const DynamicIString &rhs) const
bool  operator< (const DynamicIString &rhs) const
bool  operator== (const ConstantIString &rhs) const
bool  operator!= (const ConstantIString &rhs) const

Friends

class  ConstantIString
AWSTRING_DECL DynamicIString  intern_dynamic (const awString::IString &)

Constructor & Destructor Documentation

DynamicIString ( ) [inline]
            : m_value (0)
        {
        }
DynamicIString ( const wchar_t *  str ) [inline]
            : m_value (0)
        {
            *this = intern_dynamic (str);
        }
DynamicIString ( const awString::IString &  str ) [inline]
            : m_value (0)
        {
            *this = intern_dynamic (str);
        }
DynamicIString ( const DynamicIString rhs ) [inline]
            : m_value (rhs.m_value)
        {
            if (m_value)
                increaseStringRef (m_value);
        }
~DynamicIString ( ) [inline]
        {
            if (m_value)
                decreaseStringRef (m_value);
        }

Member Function Documentation

void operator= ( const DynamicIString rhs ) [inline]
        {
            // This order allows self assignment
            if (rhs.m_value)
                increaseStringRef (rhs.m_value);
            if (m_value)
                decreaseStringRef (m_value);
            m_value = rhs.m_value;
        }
bool isValid ( ) const [inline]
        {
            return m_value != 0;
        }
int refs ( ) const [inline]
        {
            return m_value ? m_value->m_refs : 0;
        }
const awString::IString* operator-> ( ) const [inline]
        {
            assert (m_value);
            return &(m_value->m_string);
        }
const awString::IString& operator* ( ) const [inline]
        {
            assert (m_value);
            return m_value->m_string;
        }
bool operator== ( const DynamicIString rhs ) const [inline]
        {
            // A pointer comparison
            return m_value == rhs.m_value;
        }
bool operator!= ( const DynamicIString rhs ) const [inline]
        {
            // A pointer comparison
            return m_value != rhs.m_value;
        }
bool operator< ( const DynamicIString rhs ) const [inline]
        {
            // A pointer comparison
            return m_value < rhs.m_value;
        }
bool operator== ( const ConstantIString rhs ) const [inline]
    {
        // A pointer comparison
        return m_value == rhs.m_value;
    }
bool operator!= ( const ConstantIString rhs ) const [inline]
    {
        // A pointer comparison
        return m_value != rhs.m_value;
    }

Friends And Related Function Documentation

AWSTRING_DECL DynamicIString intern_dynamic ( const awString::IString &  ) [friend]

DynamicIString DynamicIString DynamicIString DynamicIString DynamicIString DynamicIString DynamicIString DynamicIString DynamicIString DynamicIString
DynamicIString DynamicIString DynamicIString DynamicIString DynamicIString DynamicIString DynamicIString DynamicIString DynamicIString DynamicIString