decaf::util::concurrent::atomic::AtomicRefCounter Class Reference

#include <src/main/decaf/util/concurrent/atomic/AtomicRefCounter.h>

Inherited by decaf::lang::Pointer< activemq::core::kernels::ActiveMQConsumerKernel >, decaf::lang::Pointer< activemq::core::kernels::ActiveMQProducerKernel >, decaf::lang::Pointer< activemq::core::kernels::ActiveMQSessionKernel >, decaf::lang::Pointer< activemq::core::kernels::ActiveMQXASessionKernel >, decaf::lang::Pointer< activemq::threads::TaskRunner >, decaf::lang::Pointer< ActiveMQDestination >, decaf::lang::Pointer< ActiveMQTransactionContext >, decaf::lang::Pointer< Array >, decaf::lang::Pointer< BooleanExpression >, decaf::lang::Pointer< BrokerError >, decaf::lang::Pointer< BrokerId >, decaf::lang::Pointer< ByteArrayAdapter >, decaf::lang::Pointer< Callable< T > >, decaf::lang::Pointer< CloseTransportsTask >, decaf::lang::Pointer< cms::Destination >, decaf::lang::Pointer< commands::ActiveMQDestination >, decaf::lang::Pointer< commands::ConsumerId >, decaf::lang::Pointer< commands::ConsumerInfo >, decaf::lang::Pointer< commands::DestinationInfo >, decaf::lang::Pointer< commands::Message >, decaf::lang::Pointer< commands::ProducerInfo >, decaf::lang::Pointer< commands::SessionInfo >, decaf::lang::Pointer< commands::WireFormatInfo >, decaf::lang::Pointer< Comparator< E > >, decaf::lang::Pointer< CompositeTaskRunner >, decaf::lang::Pointer< ConnectionId >, decaf::lang::Pointer< ConnectionInfo >, decaf::lang::Pointer< ConstHashMapEntrySet >, decaf::lang::Pointer< ConstHashMapKeySet >, decaf::lang::Pointer< ConstHashMapValueCollection >, decaf::lang::Pointer< ConstStlMapEntrySet >, decaf::lang::Pointer< ConstStlMapKeySet >, decaf::lang::Pointer< ConstStlMapValueCollection >, decaf::lang::Pointer< ConsumerId >, decaf::lang::Pointer< ConsumerInfo >, decaf::lang::Pointer< core::ActiveMQAckHandler >, decaf::lang::Pointer< DataStructure >, decaf::lang::Pointer< decaf::lang::Exception >, decaf::lang::Pointer< decaf::lang::Runnable >, decaf::lang::Pointer< decaf::lang::Thread >, decaf::lang::Pointer< decaf::util::concurrent::locks::Condition >, decaf::lang::Pointer< FutureTaskSync >, decaf::lang::Pointer< HashMapEntrySet >, decaf::lang::Pointer< HashMapKeySet >, decaf::lang::Pointer< HashMapValueCollection >, decaf::lang::Pointer< locks::Condition >, decaf::lang::Pointer< Message >, decaf::lang::Pointer< MessageAck >, decaf::lang::Pointer< MessageDispatchChannel >, decaf::lang::Pointer< MessageId >, decaf::lang::Pointer< ProducerId >, decaf::lang::Pointer< ProducerInfo >, decaf::lang::Pointer< Properties >, decaf::lang::Pointer< QueueNode< E > >, decaf::lang::Pointer< QueueNode< Pointer< Transport > > >, decaf::lang::Pointer< Response >, decaf::lang::Pointer< ResponseBuilder >, decaf::lang::Pointer< ResponseCallback >, decaf::lang::Pointer< SessionId >, decaf::lang::Pointer< SessionInfo >, decaf::lang::Pointer< StlMapEntrySet >, decaf::lang::Pointer< StlMapKeySet >, decaf::lang::Pointer< StlMapValueCollection >, decaf::lang::Pointer< TransactionId >, decaf::lang::Pointer< TransactionState >, decaf::lang::Pointer< Transport >, decaf::lang::Pointer< URIPool >, and decaf::lang::Pointer< wireformat::WireFormat >.

Public Member Functions

 AtomicRefCounter ()
 AtomicRefCounter (const AtomicRefCounter &other)
virtual ~AtomicRefCounter ()

Protected Member Functions

void swap (AtomicRefCounter &other)
 Swaps this instance's reference counter with the one given, this allows for copy-and-swap semantics of this object.
bool release ()
 Removes a reference to the counter Atomically and returns if the counter has reached zero, once the counter hits zero, the internal counter is destroyed and this instance is now considered to be unreferenced.

Constructor & Destructor Documentation

decaf::util::concurrent::atomic::AtomicRefCounter::AtomicRefCounter (  )  [inline]
decaf::util::concurrent::atomic::AtomicRefCounter::AtomicRefCounter ( const AtomicRefCounter other  )  [inline]
virtual decaf::util::concurrent::atomic::AtomicRefCounter::~AtomicRefCounter (  )  [inline, virtual]

Member Function Documentation

bool decaf::util::concurrent::atomic::AtomicRefCounter::release (  )  [inline, protected]

Removes a reference to the counter Atomically and returns if the counter has reached zero, once the counter hits zero, the internal counter is destroyed and this instance is now considered to be unreferenced.

Returns:
true if the count is now zero.

Reimplemented in decaf::lang::Pointer< MessageAck >, decaf::lang::Pointer< FutureTaskSync >, decaf::lang::Pointer< BooleanExpression >, decaf::lang::Pointer< commands::ConsumerId >, decaf::lang::Pointer< locks::Condition >, decaf::lang::Pointer< activemq::core::kernels::ActiveMQXASessionKernel >, decaf::lang::Pointer< BrokerError >, decaf::lang::Pointer< decaf::lang::Exception >, decaf::lang::Pointer< Transport >, decaf::lang::Pointer< wireformat::WireFormat >, decaf::lang::Pointer< ConstStlMapEntrySet >, decaf::lang::Pointer< StlMapKeySet >, decaf::lang::Pointer< ActiveMQTransactionContext >, decaf::lang::Pointer< MessageDispatchChannel >, decaf::lang::Pointer< commands::WireFormatInfo >, decaf::lang::Pointer< CloseTransportsTask >, decaf::lang::Pointer< CompositeTaskRunner >, decaf::lang::Pointer< ResponseCallback >, decaf::lang::Pointer< commands::DestinationInfo >, decaf::lang::Pointer< commands::SessionInfo >, decaf::lang::Pointer< commands::ProducerInfo >, decaf::lang::Pointer< QueueNode< Pointer< Transport > > >, decaf::lang::Pointer< Comparator< E > >, decaf::lang::Pointer< BrokerId >, decaf::lang::Pointer< Message >, decaf::lang::Pointer< StlMapValueCollection >, decaf::lang::Pointer< DataStructure >, decaf::lang::Pointer< activemq::threads::TaskRunner >, decaf::lang::Pointer< activemq::core::kernels::ActiveMQConsumerKernel >, decaf::lang::Pointer< commands::ActiveMQDestination >, decaf::lang::Pointer< ConstHashMapKeySet >, decaf::lang::Pointer< ConsumerInfo >, decaf::lang::Pointer< ConnectionId >, decaf::lang::Pointer< decaf::lang::Runnable >, decaf::lang::Pointer< decaf::util::concurrent::locks::Condition >, decaf::lang::Pointer< Properties >, decaf::lang::Pointer< Array >, decaf::lang::Pointer< ProducerInfo >, decaf::lang::Pointer< activemq::core::kernels::ActiveMQSessionKernel >, decaf::lang::Pointer< decaf::lang::Thread >, decaf::lang::Pointer< MessageId >, decaf::lang::Pointer< StlMapEntrySet >, decaf::lang::Pointer< activemq::core::kernels::ActiveMQProducerKernel >, decaf::lang::Pointer< QueueNode< E > >, decaf::lang::Pointer< Response >, decaf::lang::Pointer< SessionId >, decaf::lang::Pointer< cms::Destination >, decaf::lang::Pointer< ConstHashMapValueCollection >, decaf::lang::Pointer< ActiveMQDestination >, decaf::lang::Pointer< ConstStlMapKeySet >, decaf::lang::Pointer< ProducerId >, decaf::lang::Pointer< ConstHashMapEntrySet >, decaf::lang::Pointer< ResponseBuilder >, decaf::lang::Pointer< SessionInfo >, decaf::lang::Pointer< commands::Message >, decaf::lang::Pointer< HashMapValueCollection >, decaf::lang::Pointer< HashMapEntrySet >, decaf::lang::Pointer< HashMapKeySet >, decaf::lang::Pointer< ConnectionInfo >, decaf::lang::Pointer< Callable< T > >, decaf::lang::Pointer< core::ActiveMQAckHandler >, decaf::lang::Pointer< TransactionState >, decaf::lang::Pointer< commands::ConsumerInfo >, decaf::lang::Pointer< ConsumerId >, decaf::lang::Pointer< ConstStlMapValueCollection >, decaf::lang::Pointer< URIPool >, decaf::lang::Pointer< ByteArrayAdapter >, and decaf::lang::Pointer< TransactionId >.

References decaf::util::concurrent::atomic::AtomicInteger::decrementAndGet().

void decaf::util::concurrent::atomic::AtomicRefCounter::swap ( AtomicRefCounter other  )  [inline, protected]

Swaps this instance's reference counter with the one given, this allows for copy-and-swap semantics of this object.

Parameters:
other The value to swap with this one's.

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

Generated on 1 Dec 2014 for activemq-cpp-3.8.2 by  doxygen 1.6.1