TAO_CosNotification  2.2.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
TAO_Notify_Refcountable Class Referenceabstract

Thread-safe refounting, calls the <release> method when refcount falls to 0. More...

#include <Refcountable.h>

Inheritance diagram for TAO_Notify_Refcountable:
Inheritance graph
Collaboration diagram for TAO_Notify_Refcountable:
Collaboration graph

Public Types

typedef
TAO_Notify_Refcountable_Guard_T
< TAO_Notify_Refcountable
Ptr
 

Public Member Functions

 TAO_Notify_Refcountable (void)
 Constructor. More...
 
virtual ~TAO_Notify_Refcountable ()
 
CORBA::ULong _incr_refcnt (void)
 
CORBA::ULong _decr_refcnt (void)
 

Private Member Functions

virtual void release (void)=0
 The release method is called when the refcount reaches 0. More...
 

Private Attributes

ACE_Atomic_Op< TAO_SYNCH_MUTEX,
CORBA::Long
refcount_
 

Detailed Description

Thread-safe refounting, calls the <release> method when refcount falls to 0.

   The refcount is initialized to 0. When an instance of a
   derived class becomes owned by a managed pointer
   (Refcountable_Guard_T) the reference count becomes non-zero.

   Instances declared on the stack should always have a
   refcount of zero.

   A method that creates or simply returns an instance of
   Refcountable should not increment the reference count. It is
   the responsibility of the client to increment the reference
   count (take ownership or guard against deletion). The client
   cannot know if the method will or will not incr the refcount
   on its behalf.

Use Refcountable_Guard_T or similar service to guarantee the exception safe direct pairing of increments and decrements. Avoid calling _incr_refcnt and _decr_refcnt.

Member Typedef Documentation

Constructor & Destructor Documentation

TAO_Notify_Refcountable::TAO_Notify_Refcountable ( void  )

Constructor.

TAO_Notify_Refcountable::~TAO_Notify_Refcountable ( )
virtual

Destructor public for stack allocated instances

Member Function Documentation

CORBA::ULong TAO_Notify_Refcountable::_decr_refcnt ( void  )
CORBA::ULong TAO_Notify_Refcountable::_incr_refcnt ( void  )

This method sigantures deliberately match the RefCounting methods required for ESF Proxy Public for bridge implementations and various guard classes

virtual void TAO_Notify_Refcountable::release ( void  )
privatepure virtual

Member Data Documentation

ACE_Atomic_Op<TAO_SYNCH_MUTEX, CORBA::Long> TAO_Notify_Refcountable::refcount_
private

Use a signed counter so that we can more easily detect boundary conditions such as too many _decr_refcnt() calls.


The documentation for this class was generated from the following files: