15 #ifndef TYPEREGISTRYNODE_H
16 #define TYPEREGISTRYNODE_H
18 #include "dtoolbase.h"
20 #include "typeHandle.h"
21 #include "numeric_types.h"
44 void define_subtree();
49 typedef vector<TypeRegistryNode *> Classes;
50 Classes _parent_classes;
51 Classes _child_classes;
53 #ifdef DO_MEMORY_USAGE
54 AtomicAdjust::Integer _memory_usage[TypeHandle::MC_limit];
57 static bool _paranoid_inheritance;
60 typedef int SubtreeMaskType;
69 SubtreeMaskType bits);
70 INLINE Inherit(
const Inherit ©);
71 INLINE
void operator = (
const Inherit ©);
73 INLINE
bool operator < (
const Inherit &other)
const;
74 INLINE
static bool is_derived_from(
const Inherit &child,
const Inherit &base);
77 SubtreeMaskType _mask;
78 SubtreeMaskType _bits;
80 typedef vector<Inherit> TopInheritance;
83 int bit_count, SubtreeMaskType bits);
94 TopInheritance _top_inheritance;
100 #include "typeRegistryNode.I"
This is a single entry in the TypeRegistry.
TypeHandle is the identifier used to differentiate C++ class types.