mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
git-subtree-dir: login_server git-subtree-mainline: 09ebb40de21084bb10ee466429d900a5e757d349 git-subtree-split: ca71af1817a801db9a108c205bc298250d498c4b
34 lines
597 B
C++
34 lines
597 B
C++
#include "AutoPtrContainer.h"
|
|
|
|
#include <assert.h>
|
|
|
|
AutoPtrContainer::AutoPtrContainer() : mReferenceCount(1)
|
|
{
|
|
}
|
|
|
|
AutoPtrContainer::AutoPtrContainer(int referenceCount)
|
|
: mReferenceCount(referenceCount)
|
|
{
|
|
}
|
|
|
|
AutoPtrContainer::~AutoPtrContainer()
|
|
{
|
|
mReferenceCount = 0;
|
|
}
|
|
|
|
|
|
void AutoPtrContainer::duplicate()
|
|
{
|
|
Poco::ScopedLock<Poco::FastMutex> lock(mReferenceCountMutex);
|
|
mReferenceCount++;
|
|
}
|
|
|
|
void AutoPtrContainer::release()
|
|
{
|
|
Poco::ScopedLock<Poco::FastMutex> lock(mReferenceCountMutex);
|
|
assert(mReferenceCount > 0);
|
|
mReferenceCount--;
|
|
if (0 == mReferenceCount) {
|
|
delete this;
|
|
}
|
|
} |