Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes

CORBA::DefaultValueRefCountBase Class Reference

#include <ValueBase.h>

Inheritance diagram for CORBA::DefaultValueRefCountBase:
Inheritance graph
[legend]
Collaboration diagram for CORBA::DefaultValueRefCountBase:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual void _add_ref (void)
 ! virtual CORBA::ValueBase* _copy_value (void) = 0;
virtual void _remove_ref (void)
virtual CORBA::ULong _refcount_value (void)
void _tao_add_ref (void)
void _tao_remove_ref (void)
CORBA::ULong _tao_refcount_value (void)

Protected Member Functions

 DefaultValueRefCountBase (void)
 DefaultValueRefCountBase (const DefaultValueRefCountBase &)
virtual ~DefaultValueRefCountBase ()

Private Member Functions

void operator= (const DefaultValueRefCountBase &)

Private Attributes

ACE_Atomic_Op< TAO_SYNCH_MUTEX,
unsigned long > 
refcount_
 Reference counter.

Detailed Description

Default mix-in for reference count of a valuetype.

Definition at line 310 of file ValueBase.h.


Constructor & Destructor Documentation

CORBA::DefaultValueRefCountBase::DefaultValueRefCountBase ( void   )  [protected]

Definition at line 1356 of file ValueBase.cpp.

  : refcount_ (1)
{
}

CORBA::DefaultValueRefCountBase::DefaultValueRefCountBase ( const DefaultValueRefCountBase rhs  )  [protected]

Definition at line 1364 of file ValueBase.cpp.

  : ValueBase (rhs),
    refcount_ (1)

{
}

CORBA::DefaultValueRefCountBase::~DefaultValueRefCountBase ( void   )  [protected, virtual]

Definition at line 1332 of file ValueBase.cpp.

{
}


Member Function Documentation

void CORBA::DefaultValueRefCountBase::_add_ref ( void   )  [virtual]

! virtual CORBA::ValueBase* _copy_value (void) = 0;

Implements CORBA::ValueBase.

Definition at line 1337 of file ValueBase.cpp.

{
  this->_tao_add_ref ();
}

CORBA::ULong CORBA::DefaultValueRefCountBase::_refcount_value ( void   )  [virtual]

Implements CORBA::ValueBase.

Definition at line 1349 of file ValueBase.cpp.

{
  return this->_tao_refcount_value ();
}

void CORBA::DefaultValueRefCountBase::_remove_ref ( void   )  [virtual]

Implements CORBA::ValueBase.

Definition at line 1343 of file ValueBase.cpp.

{
  this->_tao_remove_ref ();
}

void CORBA::DefaultValueRefCountBase::_tao_add_ref ( void   ) 

The _tao variants are inline for fast access from T_var (if valuetype T is compiled with optimization for that.) ! (todo)

Definition at line 1373 of file ValueBase.cpp.

{
  ++this->refcount_;
}

CORBA::ULong CORBA::DefaultValueRefCountBase::_tao_refcount_value ( void   ) 

Definition at line 1388 of file ValueBase.cpp.

{
  return this->refcount_.value ();
}

void CORBA::DefaultValueRefCountBase::_tao_remove_ref ( void   ) 

Definition at line 1379 of file ValueBase.cpp.

{
  CORBA::ULong const new_count = --this->refcount_;

  if (new_count == 0)
    delete this;
}

void CORBA::DefaultValueRefCountBase::operator= ( const DefaultValueRefCountBase  )  [private]

Member Data Documentation

ACE_Atomic_Op<TAO_SYNCH_MUTEX, unsigned long> CORBA::DefaultValueRefCountBase::refcount_ [private]

Reference counter.

Definition at line 334 of file ValueBase.h.


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