8#ifndef INCLUDED_BSLMA_SHAREDPTRREP
9#define INCLUDED_BSLMA_SHAREDPTRREP
312#include <bslscm_version.h>
372 virtual void vtableDummy()
const;
453#ifndef BDE_OMIT_INTERNAL_DEPRECATED
544: d_adjustedSharedCount(2)
545, d_adjustedWeakCount(1)
558#ifndef BDE_OMIT_INTERNAL_DEPRECATED
565 d_adjustedSharedCount.
addRelaxed(incrementAmount * 2);
575 const int weakCount = d_adjustedWeakCount.
add(-2);
577 if (0 == weakCount) {
586 const int sharedCount = d_adjustedSharedCount;
588 return 2 == sharedCount
590 && 1 == d_adjustedWeakCount);
596 const int sharedCount = d_adjustedSharedCount.
loadRelaxed();
598 return sharedCount / 2;
604 const int weakCount = d_adjustedWeakCount.
loadRelaxed();
606 return weakCount / 2;
Definition bslma_sharedptrrep.h:338
virtual void * getDeleter(const std::type_info &type)=0
virtual void * originalPtr() const =0
void resetCountsRaw(int numSharedReferences, int numWeakReferences)
void releaseWeakRef()
Definition bslma_sharedptrrep.h:571
SharedPtrRep()
Definition bslma_sharedptrrep.h:543
int numWeakReferences() const
Definition bslma_sharedptrrep.h:602
bool hasUniqueOwner() const
Definition bslma_sharedptrrep.h:584
virtual ~SharedPtrRep()
Definition bslma_sharedptrrep.h:521
virtual void disposeObject()=0
static void managedPtrEmptyDeleter(void *, void *rep)
Definition bslma_sharedptrrep.h:535
void incrementRefs(int incrementAmount=1)
Definition bslma_sharedptrrep.h:560
virtual void disposeRep()=0
static void managedPtrDeleter(void *, void *rep)
Definition bslma_sharedptrrep.h:527
int numReferences() const
Definition bslma_sharedptrrep.h:594
void acquireRef()
Definition bslma_sharedptrrep.h:551
Definition bsls_atomic.h:743
int addRelaxed(int value)
Definition bsls_atomic.h:1648
int loadRelaxed() const
Definition bsls_atomic.h:1738
int add(int value)
Definition bsls_atomic.h:1636
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1762
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
Definition balxml_encoderoptions.h:68