42 lines
993 B
C
42 lines
993 B
C
|
/*
|
||
|
* Copyright 2006 Sony Computer Entertainment Inc.
|
||
|
*
|
||
|
* Licensed under the MIT Open Source License, for details please see license.txt or the website
|
||
|
* http://www.opensource.org/licenses/mit-license.php
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef daeRefCountedObj_h
|
||
|
#define daeRefCountedObj_h
|
||
|
|
||
|
#include <dae/daeTypes.h>
|
||
|
#include <dae/daePlatform.h>
|
||
|
|
||
|
class DLLSPEC daeRefCountedObj {
|
||
|
protected:
|
||
|
mutable daeInt _refCount;
|
||
|
|
||
|
public:
|
||
|
daeRefCountedObj();
|
||
|
virtual ~daeRefCountedObj();
|
||
|
|
||
|
/**
|
||
|
* Decrements the reference count and deletes the object if reference count is zero.
|
||
|
* @note Should not be used externally if daeSmartRefs are being used, they call it
|
||
|
* automatically.
|
||
|
*/
|
||
|
void release() const;
|
||
|
|
||
|
/**
|
||
|
* Increments the reference count of this element.
|
||
|
* @note Should not be used externally if daeSmartRefs are being used, they call it
|
||
|
* automatically.
|
||
|
*/
|
||
|
void ref() const;
|
||
|
};
|
||
|
|
||
|
void DLLSPEC checkedRelease(const daeRefCountedObj* obj);
|
||
|
void DLLSPEC checkedRef(const daeRefCountedObj* obj);
|
||
|
|
||
|
#endif
|