Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

TypeRegistryNode Class Reference

#include <typeRegistryNode.h>

List of all members.

Public Types

typedef pvector< TypeRegistryNode * > Classes

Public Member Functions

 TypeRegistryNode (TypeHandle handle, const string &name, TypeHandle &ref)
void clear_subtree ()
void define_subtree ()

Static Public Member Functions

bool is_derived_from (const TypeRegistryNode *child, const TypeRegistryNode *base)
TypeHandle get_parent_towards (const TypeRegistryNode *child, const TypeRegistryNode *base)

Public Attributes

TypeHandle _handle
string _name
TypeHandle_ref
Classes _parent_classes
Classes _child_classes

Static Public Attributes

bool _paranoid_inheritance

Private Types

typedef int SubtreeMaskType
typedef pvector< InheritTopInheritance

Private Member Functions

void r_build_subtrees (TypeRegistryNode *top, int bit_count, SubtreeMaskType bits)

Static Private Member Functions

bool check_derived_from (const TypeRegistryNode *child, const TypeRegistryNode *base)

Private Attributes

Inherit _inherit
TopInheritance _top_inheritance
int _visit_count


Member Typedef Documentation

typedef pvector<TypeRegistryNode *> TypeRegistryNode::Classes
 

Definition at line 51 of file typeRegistryNode.h.

typedef int TypeRegistryNode::SubtreeMaskType [private]
 

Definition at line 58 of file typeRegistryNode.h.

Referenced by r_build_subtrees().

typedef pvector<Inherit> TypeRegistryNode::TopInheritance [private]
 

Definition at line 78 of file typeRegistryNode.h.


Constructor & Destructor Documentation

TypeRegistryNode::TypeRegistryNode TypeHandle  handle,
const string &  name,
TypeHandle ref
 

Definition at line 31 of file typeRegistryNode.cxx.

References clear_subtree(), and ref.


Member Function Documentation

bool TypeRegistryNode::check_derived_from const TypeRegistryNode *  child,
const TypeRegistryNode *  base
[static, private]
 

Definition at line 351 of file typeRegistryNode.cxx.

References _parent_classes.

Referenced by is_derived_from().

void TypeRegistryNode::clear_subtree  ) 
 

Definition at line 191 of file typeRegistryNode.cxx.

References _inherit, _top_inheritance, and _visit_count.

Referenced by TypeRegistry::rebuild_derivations(), and TypeRegistryNode().

void TypeRegistryNode::define_subtree  ) 
 

Definition at line 207 of file typeRegistryNode.cxx.

References r_build_subtrees().

Referenced by r_build_subtrees(), and TypeRegistry::rebuild_derivations().

TypeHandle TypeRegistryNode::get_parent_towards const TypeRegistryNode *  child,
const TypeRegistryNode *  base
[static]
 

Definition at line 165 of file typeRegistryNode.cxx.

References _handle, _parent_classes, is_derived_from(), and TypeHandle::none().

Referenced by TypeRegistry::get_parent_towards().

bool TypeRegistryNode::is_derived_from const TypeRegistryNode *  child,
const TypeRegistryNode *  base
[static]
 

Definition at line 45 of file typeRegistryNode.cxx.

References TypeRegistryNode::Inherit::_bits, _inherit, TypeRegistryNode::Inherit::_mask, _name, TypeRegistryNode::Inherit::_top, _top_inheritance, check_derived_from(), and NULL.

Referenced by get_parent_towards().

void TypeRegistryNode::r_build_subtrees TypeRegistryNode *  top,
int  bit_count,
SubtreeMaskType  bits
[private]
 

Definition at line 231 of file typeRegistryNode.cxx.

References _child_classes, _inherit, _parent_classes, TypeRegistryNode::Inherit::_top, _top_inheritance, _visit_count, define_subtree(), NULL, and SubtreeMaskType.

Referenced by define_subtree().


Member Data Documentation

Classes TypeRegistryNode::_child_classes
 

Definition at line 53 of file typeRegistryNode.h.

Referenced by TypeRegistry::get_child_class(), TypeRegistry::get_num_child_classes(), r_build_subtrees(), TypeRegistry::record_derivation(), and TypeRegistry::write_node().

TypeHandle TypeRegistryNode::_handle
 

Definition at line 48 of file typeRegistryNode.h.

Referenced by get_parent_towards(), TypeRegistry::register_dynamic_type(), TypeRegistry::register_type(), TypeRegistry::reregister_types(), and TypeRegistry::write_node().

Inherit TypeRegistryNode::_inherit [private]
 

Definition at line 86 of file typeRegistryNode.h.

Referenced by clear_subtree(), is_derived_from(), and r_build_subtrees().

string TypeRegistryNode::_name
 

Definition at line 49 of file typeRegistryNode.h.

Referenced by TypeRegistry::get_name(), is_derived_from(), TypeRegistry::record_alternate_name(), TypeRegistry::register_type(), TypeRegistry::reregister_types(), and TypeRegistry::write_node().

bool TypeRegistryNode::_paranoid_inheritance [static]
 

Definition at line 23 of file typeRegistryNode.cxx.

Referenced by TypeRegistry::init_global_pointer().

Classes TypeRegistryNode::_parent_classes
 

Definition at line 52 of file typeRegistryNode.h.

Referenced by check_derived_from(), TypeRegistry::get_num_parent_classes(), TypeRegistry::get_parent_class(), get_parent_towards(), r_build_subtrees(), TypeRegistry::rebuild_derivations(), TypeRegistry::record_derivation(), and TypeRegistry::write_node().

TypeHandle& TypeRegistryNode::_ref
 

Definition at line 50 of file typeRegistryNode.h.

Referenced by TypeRegistry::register_type(), and TypeRegistry::reregister_types().

TopInheritance TypeRegistryNode::_top_inheritance [private]
 

Definition at line 92 of file typeRegistryNode.h.

Referenced by clear_subtree(), is_derived_from(), and r_build_subtrees().

int TypeRegistryNode::_visit_count [private]
 

Definition at line 95 of file typeRegistryNode.h.

Referenced by clear_subtree(), and r_build_subtrees().


The documentation for this class was generated from the following files:
Generated on Fri Apr 18 00:13:58 2003 for Panda by doxygen1.3