Public Types | Public Member Functions | Private Member Functions | Private Attributes

TAO::details::string_sequence_element< traits > Class Template Reference

#include <String_Sequence_Element_T.h>

List of all members.

Public Types

typedef traits::char_type character_type
typedef character_type * value_type
typedef character_type const * const_value_type
typedef traits::string_var string_var
typedef traits::string_out string_out
typedef traits::string_mgr string_mgr

Public Member Functions

 string_sequence_element (value_type &e, CORBA::Boolean release)
 string_sequence_element (string_sequence_element const &rhs)
 ~string_sequence_element ()
string_sequence_elementoperator= (const_value_type rhs)
string_sequence_elementoperator= (value_type rhs)
string_sequence_elementoperator= (string_sequence_element const &rhs)
string_sequence_elementoperator= (string_var const &rhs)
string_sequence_elementoperator= (string_mgr const &rhs)
 operator const_value_type () const
const character_type * in (void) const
character_type *& inout (void) const
string_out out (void) const
character_type * _retn (void)
void swap (string_sequence_element &rhs)
CORBA::Boolean release () const

Private Member Functions

string_sequence_element< traits > & pseudo_copy_swap (string_var &rhs)
 string_sequence_element ()

Private Attributes

value_type * element_
CORBA::Boolean release_

Detailed Description

template<typename traits>
class TAO::details::string_sequence_element< traits >

Definition at line 26 of file String_Sequence_Element_T.h.


Member Typedef Documentation

template<typename traits >
typedef traits::char_type TAO::details::string_sequence_element< traits >::character_type

Definition at line 29 of file String_Sequence_Element_T.h.

template<typename traits >
typedef character_type const* TAO::details::string_sequence_element< traits >::const_value_type

Definition at line 31 of file String_Sequence_Element_T.h.

template<typename traits >
typedef traits::string_mgr TAO::details::string_sequence_element< traits >::string_mgr

Definition at line 34 of file String_Sequence_Element_T.h.

template<typename traits >
typedef traits::string_out TAO::details::string_sequence_element< traits >::string_out

Definition at line 33 of file String_Sequence_Element_T.h.

template<typename traits >
typedef traits::string_var TAO::details::string_sequence_element< traits >::string_var

Definition at line 32 of file String_Sequence_Element_T.h.

template<typename traits >
typedef character_type* TAO::details::string_sequence_element< traits >::value_type

Definition at line 30 of file String_Sequence_Element_T.h.


Constructor & Destructor Documentation

template<typename traits >
TAO::details::string_sequence_element< traits >::string_sequence_element ( value_type &  e,
CORBA::Boolean  release 
) [inline]

Definition at line 48 of file String_Sequence_Element_T.h.

    : element_(&e)
    , release_(release)
  {
  }

template<typename traits >
TAO::details::string_sequence_element< traits >::string_sequence_element ( string_sequence_element< traits > const &  rhs  )  [inline]

Definition at line 55 of file String_Sequence_Element_T.h.

    : element_(rhs.element_)
    , release_(rhs.release_)
  {
  }

template<typename traits >
TAO::details::string_sequence_element< traits >::~string_sequence_element (  )  [inline]

Definition at line 62 of file String_Sequence_Element_T.h.

  {
  }

template<typename traits >
TAO::details::string_sequence_element< traits >::string_sequence_element (  )  [private]

Member Function Documentation

template<typename traits >
character_type* TAO::details::string_sequence_element< traits >::_retn ( void   )  [inline]

Definition at line 119 of file String_Sequence_Element_T.h.

                                      {
    character_type * copy = *this->element_;
    *this->element_ = traits::default_initializer();
    return copy;
  }

template<typename traits >
const character_type* TAO::details::string_sequence_element< traits >::in ( void   )  const [inline]

Definition at line 101 of file String_Sequence_Element_T.h.

                                               {
    return *this->element_;
  }

template<typename traits >
character_type*& TAO::details::string_sequence_element< traits >::inout ( void   )  const [inline]

Definition at line 105 of file String_Sequence_Element_T.h.

                                             {
    return *this->element_;
  }

template<typename traits >
TAO::details::string_sequence_element< traits >::operator const_value_type (  )  const [inline]

Definition at line 96 of file String_Sequence_Element_T.h.

  {
    return *this->element_;
  }

template<typename traits >
string_sequence_element& TAO::details::string_sequence_element< traits >::operator= ( string_sequence_element< traits > const &  rhs  )  [inline]

Definition at line 78 of file String_Sequence_Element_T.h.

  {
    string_var tmp(static_cast<const_value_type>(rhs));
    return pseudo_copy_swap(tmp);
  }

template<typename traits >
string_sequence_element& TAO::details::string_sequence_element< traits >::operator= ( string_var const &  rhs  )  [inline]

Definition at line 84 of file String_Sequence_Element_T.h.

  {
    string_var tmp(rhs);
    return pseudo_copy_swap(tmp);
  }

template<typename traits >
string_sequence_element& TAO::details::string_sequence_element< traits >::operator= ( const_value_type  rhs  )  [inline]

Definition at line 66 of file String_Sequence_Element_T.h.

  {
    string_var tmp(rhs);
    return pseudo_copy_swap(tmp);
  }

template<typename traits >
string_sequence_element& TAO::details::string_sequence_element< traits >::operator= ( value_type  rhs  )  [inline]

Definition at line 72 of file String_Sequence_Element_T.h.

  {
    string_var tmp(rhs);
    return pseudo_copy_swap(tmp);
  }

template<typename traits >
string_sequence_element& TAO::details::string_sequence_element< traits >::operator= ( string_mgr const &  rhs  )  [inline]

Definition at line 90 of file String_Sequence_Element_T.h.

  {
    string_var tmp(rhs.in());
    return pseudo_copy_swap(tmp);
  }

template<typename traits >
string_out TAO::details::string_sequence_element< traits >::out ( void   )  const [inline]

Definition at line 109 of file String_Sequence_Element_T.h.

                                     {

    if (release())
      {
        traits::release(*element_);
      }

    return *this->element_;
  }

template<typename traits >
string_sequence_element<traits>& TAO::details::string_sequence_element< traits >::pseudo_copy_swap ( string_var &  rhs  )  [inline, private]

Definition at line 37 of file String_Sequence_Element_T.h.

  {
    if (release())
      {
        traits::release(*element_);
      }
    *element_ = rhs._retn();
    return *this;
  }

template<typename traits >
CORBA::Boolean TAO::details::string_sequence_element< traits >::release ( void   )  const [inline]

Definition at line 131 of file String_Sequence_Element_T.h.

  {
    return this->release_;
  }

template<typename traits >
void TAO::details::string_sequence_element< traits >::swap ( string_sequence_element< traits > &  rhs  )  [inline]

Definition at line 125 of file String_Sequence_Element_T.h.

  {
    std::swap(element_, rhs.element_);
    std::swap(release_, rhs.release_);
  }


Member Data Documentation

template<typename traits >
value_type* TAO::details::string_sequence_element< traits >::element_ [private]

Definition at line 141 of file String_Sequence_Element_T.h.

template<typename traits >
CORBA::Boolean TAO::details::string_sequence_element< traits >::release_ [private]

Definition at line 142 of file String_Sequence_Element_T.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines