27 #ifndef QORE_REFERENCE_HOLDER_H_
28 #define QORE_REFERENCE_HOLDER_H_
42 template<
typename T =
class AbstractQoreNode>
46 DLLLOCAL ReferenceHolder& operator=(
const ReferenceHolder&);
47 DLLLOCAL
void*
operator new(size_t);
83 DLLLOCAL
operator bool()
const {
return p != 0; }
103 DLLLOCAL SimpleRefHolder& operator=(
const SimpleRefHolder&);
104 DLLLOCAL
void*
operator new(size_t);
109 DLLLOCAL SimpleRefHolder() : p(0) {}
110 DLLLOCAL SimpleRefHolder(T* p_) : p(p_) {}
111 DLLLOCAL ~SimpleRefHolder() {
if (p) p->deref(); }
113 DLLLOCAL T* operator->() {
return p; }
114 DLLLOCAL T* operator*() {
return p; }
115 DLLLOCAL
void operator=(T *nv) {
120 DLLLOCAL T *release() {
125 DLLLOCAL
operator bool()
const {
return p != 0; }