#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(). |
1.4.4