activemq-cpp-3.6.0
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::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< Tracked >, 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 ( )
inlinevirtual

Member Function Documentation

bool decaf::util::concurrent::atomic::AtomicRefCounter::release ( )
inlineprotected

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::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< ConstHashMapKeySet >, decaf::lang::Pointer< activemq::threads::TaskRunner >, decaf::lang::Pointer< activemq::core::kernels::ActiveMQConsumerKernel >, decaf::lang::Pointer< commands::ActiveMQDestination >, 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< ConstHashMapEntrySet >, decaf::lang::Pointer< ProducerId >, decaf::lang::Pointer< ResponseBuilder >, decaf::lang::Pointer< SessionInfo >, decaf::lang::Pointer< HashMapValueCollection >, decaf::lang::Pointer< HashMapEntrySet >, decaf::lang::Pointer< commands::Message >, decaf::lang::Pointer< HashMapKeySet >, decaf::lang::Pointer< Tracked >, 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)
inlineprotected

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

Parameters
otherThe value to swap with this one's.

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