#include "AutoPtrContainer.h" #include AutoPtrContainer::AutoPtrContainer() : mReferenceCount(1) { } AutoPtrContainer::AutoPtrContainer(int referenceCount) : mReferenceCount(referenceCount) { } AutoPtrContainer::~AutoPtrContainer() { mReferenceCount = 0; } void AutoPtrContainer::duplicate() { Poco::ScopedLock lock(mReferenceCountMutex); mReferenceCount++; } void AutoPtrContainer::release() { Poco::ScopedLock lock(mReferenceCountMutex); assert(mReferenceCount > 0); mReferenceCount--; if (0 == mReferenceCount) { delete this; } }