Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ref.H File Reference

#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)


Define Documentation

#define CREFptr   const REFptr
 

Definition at line 25 of file ref.H.

#define MAKE_PTR_BASEC  ) 
 

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_; } \
}

Definition at line 218 of file ref.H.

#define MAKE_PTR_SUBC A,
 ) 
 

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 246 of file ref.H.

#define REF_ME  )     ((REFcounter *)A)
 

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


Generated on Mon Sep 18 11:43:01 2006 for jot by  doxygen 1.4.4