8#ifndef INCLUDED_BSLMA_SHAREDPTRREP
9#define INCLUDED_BSLMA_SHAREDPTRREP
312#include <bslscm_version.h>
373 virtual void vtableDummy()
const;
465#ifndef BDE_OMIT_INTERNAL_DEPRECATED
561: d_adjustedSharedCount(2)
562, d_adjustedWeakCount(1)
575#ifndef BDE_OMIT_INTERNAL_DEPRECATED
582 d_adjustedSharedCount.
addRelaxed(incrementAmount * 2);
592 const int weakCount = d_adjustedWeakCount.
add(-2);
594 if (0 == weakCount) {
603 const int sharedCount = d_adjustedSharedCount;
605 return 2 == sharedCount
607 && 1 == d_adjustedWeakCount);
613 const int sharedCount = d_adjustedSharedCount.
loadRelaxed();
615 return sharedCount / 2;
621 const int weakCount = d_adjustedWeakCount.
loadRelaxed();
623 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:588
SharedPtrRep()
Definition bslma_sharedptrrep.h:560
int numWeakReferences() const
Definition bslma_sharedptrrep.h:619
bool hasUniqueOwner() const
Definition bslma_sharedptrrep.h:601
virtual ~SharedPtrRep()
Definition bslma_sharedptrrep.h:538
virtual void disposeObject()=0
static void managedPtrEmptyDeleter(void *, void *rep)
Definition bslma_sharedptrrep.h:552
void incrementRefs(int incrementAmount=1)
Definition bslma_sharedptrrep.h:577
virtual void disposeRep()=0
static void managedPtrDeleter(void *, void *rep)
Definition bslma_sharedptrrep.h:544
int numReferences() const
Definition bslma_sharedptrrep.h:611
void acquireRef()
Definition bslma_sharedptrrep.h:568
Definition bsls_atomic.h:744
int addRelaxed(int value)
Definition bsls_atomic.h:1669
int loadRelaxed() const
Definition bsls_atomic.h:1759
int add(int value)
Definition bsls_atomic.h:1657
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1917
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition baljsn_encoder_testtypes.h:76