#include <cassert>
#include "std/iostream.H"
#include "platform.H"
#include "thread_mutex.H"
Include dependency graph for ref.H:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Classes | |
class | REFcounter |
class | REFlock |
class | REFptr< T > |
Defines | |
#define | CREFptr const REFptr |
#define | REF_ME(A) ((REFcounter *)A) |
#define | MAKE_PTR_BASEC(A) |
#define | MAKE_PTR_SUBC(A, B) |
|
|
|
Value: class A; \ class A##subc { \ public : \ virtual ~A##subc() {} \ virtual A *A##cast() const = 0; \ }; \ class A##ptr : public REFptr<A>, public A##subc { \ public : \ A##ptr() { }\ A##ptr(A *g): REFptr<A>(g) { }\ A##ptr(const A##ptr &p): REFptr<A>(p.p_) { }\ A##ptr(const A##subc &p): REFptr<A>(p.A##cast()) { } \ \ virtual A *A##cast() const { return (A *)p_; } \ } |
|
Value: class A; \ class A##subc: public B##subc { \ public : \ virtual A *A##cast() const = 0; \ virtual B *B##cast() const { return (B *)A##cast(); } \ }; \ class A##ptr : public REFptr<A>, public A##subc { \ public : \ A##ptr() { }\ A##ptr(A *g): REFptr<A>(g) { }\ A##ptr(const A##ptr &p): REFptr<A>(p.p_) { }\ A##ptr(const A##subc &p): REFptr<A>(p.A##cast()) { } \ \ virtual A *A##cast() const { return (A *)p_; } \ } |
|
Definition at line 26 of file ref.H. Referenced by REFptr< STR >::Clear(), REFcounter::Free(), REFptr< STR >::operator=(), REFcounter::Own(), REFptr< STR >::REFptr(), and REFptr< STR >::~REFptr(). |