Protected Attributes

TAO_ORB_Core_Auto_Ptr Class Reference

Define a TAO_ORB_Core auto_ptr class. More...

#include <ORB_Core_Auto_Ptr.h>

Collaboration diagram for TAO_ORB_Core_Auto_Ptr:
Collaboration graph
[legend]

List of all members.

Public Member Functions

Initialization and termination methods

 TAO_ORB_Core_Auto_Ptr (TAO_ORB_Core *p=0)
 TAO_ORB_Core_Auto_Ptr (TAO_ORB_Core_Auto_Ptr &ap)
TAO_ORB_Core_Auto_Ptroperator= (TAO_ORB_Core_Auto_Ptr &rhs)
 ~TAO_ORB_Core_Auto_Ptr (void)
Accessor methods.

TAO_ORB_Coreoperator* () const
TAO_ORB_Coreget (void) const
TAO_ORB_Corerelease (void)
void reset (TAO_ORB_Core *p=0)
TAO_ORB_Coreoperator-> () const

Protected Attributes

TAO_ORB_Corep_

Detailed Description

Define a TAO_ORB_Core auto_ptr class.

This class is used as an aid to make ORB initialization exception safe. It ensures that the ORB core is deallocated through its reference counting mechanism if an exception is thrown.

Definition at line 40 of file ORB_Core_Auto_Ptr.h.


Constructor & Destructor Documentation

TAO_ORB_Core_Auto_Ptr::TAO_ORB_Core_Auto_Ptr ( TAO_ORB_Core p = 0  )  [explicit]

Definition at line 9 of file ORB_Core_Auto_Ptr.inl.

  : p_ (p)
{
}

TAO_ORB_Core_Auto_Ptr::TAO_ORB_Core_Auto_Ptr ( TAO_ORB_Core_Auto_Ptr ap  ) 

Definition at line 35 of file ORB_Core_Auto_Ptr.inl.

  : p_ (rhs.release ())
{
}

TAO_ORB_Core_Auto_Ptr::~TAO_ORB_Core_Auto_Ptr ( void   ) 

Definition at line 14 of file ORB_Core_Auto_Ptr.cpp.

{
  if (this->get () != 0)
    {
      this->get ()->_decr_refcnt ();
    }
}


Member Function Documentation

TAO_ORB_Core * TAO_ORB_Core_Auto_Ptr::get ( void   )  const

Definition at line 15 of file ORB_Core_Auto_Ptr.inl.

{
  return this->p_;
}

TAO_ORB_Core & TAO_ORB_Core_Auto_Ptr::operator* ( void   )  const

Definition at line 53 of file ORB_Core_Auto_Ptr.inl.

{
  // @@ Potential problem if this->p_ is zero!
  return *this->get ();
}

TAO_ORB_Core * TAO_ORB_Core_Auto_Ptr::operator-> ( void   )  const

Definition at line 29 of file ORB_Core_Auto_Ptr.inl.

{
  return this->get ();
}

TAO_ORB_Core_Auto_Ptr & TAO_ORB_Core_Auto_Ptr::operator= ( TAO_ORB_Core_Auto_Ptr rhs  ) 

Definition at line 41 of file ORB_Core_Auto_Ptr.inl.

{
  if (this != &rhs)
    {
      this->reset (rhs.release ());
    }
  return *this;
}

TAO_ORB_Core * TAO_ORB_Core_Auto_Ptr::release ( void   ) 

Definition at line 21 of file ORB_Core_Auto_Ptr.inl.

{
  TAO_ORB_Core *old = this->p_;
  this->p_ = 0;
  return old;
}

void TAO_ORB_Core_Auto_Ptr::reset ( TAO_ORB_Core p = 0  ) 

Definition at line 23 of file ORB_Core_Auto_Ptr.cpp.

{
  if (this->get () != p && this->get () != 0)
    {
      this->get ()->_decr_refcnt ();
    }

  this->p_ = p;
}


Member Data Documentation

Definition at line 66 of file ORB_Core_Auto_Ptr.h.


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