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

TypeRegistry Class Reference

#include <typeRegistry.h>

List of all members.

Public Member Functions

bool register_type (TypeHandle &type_handle, const string &name)
TypeHandle register_dynamic_type (const string &name)
void record_derivation (TypeHandle child, TypeHandle parent)
void record_alternate_name (TypeHandle type, const string &name)
string get_name (TypeHandle type, TypedObject *object) const
INLINE bool is_derived_from (TypeHandle child, TypeHandle base, TypedObject *child_object)
int get_num_root_classes ()
TypeHandle get_root_class (int n)
int get_num_parent_classes (TypeHandle child, TypedObject *child_object) const
TypeHandle get_parent_class (TypeHandle child, int index) const
int get_num_child_classes (TypeHandle child, TypedObject *child_object) const
TypeHandle get_child_class (TypeHandle child, int index) const
TypeHandle get_parent_towards (TypeHandle child, TypeHandle base, TypedObject *child_object)
void write (ostream &out) const

Static Public Member Functions

void reregister_types ()
TypeRegistry * ptr ()

Public Attributes

PUBLISHED __pad0__: TypeHandle find_type(const string &name) const

Private Types

typedef pvector< TypeRegistryNode * > HandleRegistry
typedef pmap< string, TypeRegistryNode * > NameRegistry
typedef pvector< TypeRegistryNode * > RootClasses

Private Member Functions

 TypeRegistry ()
TypeRegistryNodelook_up (TypeHandle type, TypedObject *object) const
INLINE void freshen_derivations ()
void rebuild_derivations ()
void write_node (ostream &out, int indent_level, const TypeRegistryNode *node) const

Static Private Member Functions

void init_global_pointer ()

Private Attributes

HandleRegistry _handle_registry
NameRegistry _name_registry
RootClasses _root_classes
bool _derivations_fresh

Static Private Attributes

TypeRegistry * _global_pointer = NULL


Member Typedef Documentation

typedef pvector<TypeRegistryNode *> TypeRegistry::HandleRegistry [private]
 

Definition at line 100 of file typeRegistry.h.

typedef pmap<string, TypeRegistryNode *> TypeRegistry::NameRegistry [private]
 

Definition at line 103 of file typeRegistry.h.

typedef pvector<TypeRegistryNode *> TypeRegistry::RootClasses [private]
 

Definition at line 106 of file typeRegistry.h.


Constructor & Destructor Documentation

TypeRegistry::TypeRegistry  )  [private]
 

Definition at line 458 of file typeRegistry.cxx.

References _derivations_fresh, _handle_registry, and NULL.


Member Function Documentation

INLINE void TypeRegistry::freshen_derivations  )  [private]
 

Referenced by get_num_root_classes(), get_parent_towards(), and get_root_class().

TypeHandle TypeRegistry::get_child_class TypeHandle  child,
int  index
const
 

Definition at line 349 of file typeRegistry.cxx.

References TypeRegistryNode::_child_classes, index, look_up(), TypeHandle::none(), and NULL.

string TypeRegistry::get_name TypeHandle  type,
TypedObject object
const
 

Definition at line 251 of file typeRegistry.cxx.

References TypeRegistryNode::_name, look_up(), NULL, and type.

int TypeRegistry::get_num_child_classes TypeHandle  child,
TypedObject child_object
const
 

Definition at line 335 of file typeRegistry.cxx.

References TypeRegistryNode::_child_classes, look_up(), and NULL.

int TypeRegistry::get_num_parent_classes TypeHandle  child,
TypedObject child_object
const
 

Definition at line 300 of file typeRegistry.cxx.

References TypeRegistryNode::_parent_classes, look_up(), and NULL.

int TypeRegistry::get_num_root_classes  ) 
 

Definition at line 265 of file typeRegistry.cxx.

References _root_classes, and freshen_derivations().

Referenced by get_root_class().

TypeHandle TypeRegistry::get_parent_class TypeHandle  child,
int  index
const
 

Definition at line 314 of file typeRegistry.cxx.

References TypeRegistryNode::_parent_classes, index, look_up(), TypeHandle::none(), and NULL.

TypeHandle TypeRegistry::get_parent_towards TypeHandle  child,
TypeHandle  base,
TypedObject child_object
 

Definition at line 372 of file typeRegistry.cxx.

References freshen_derivations(), TypeRegistryNode::get_parent_towards(), look_up(), TypeHandle::none(), and NULL.

TypeHandle TypeRegistry::get_root_class int  n  ) 
 

Definition at line 277 of file typeRegistry.cxx.

References _root_classes, freshen_derivations(), get_num_root_classes(), n, and TypeHandle::none().

void TypeRegistry::init_global_pointer  )  [static, private]
 

Definition at line 476 of file typeRegistry.cxx.

References _global_pointer, TypeRegistryNode::_paranoid_inheritance, and get_paranoid_inheritance().

Referenced by ptr().

INLINE bool TypeRegistry::is_derived_from TypeHandle  child,
TypeHandle  base,
TypedObject child_object
 

TypeRegistryNode * TypeRegistry::look_up TypeHandle  type,
TypedObject object
const [private]
 

Definition at line 568 of file typeRegistry.cxx.

References _handle_registry, TypeHandle::_index, TypedObject::force_init_type(), TypedObject::get_type(), NULL, and write().

Referenced by get_child_class(), get_name(), get_num_child_classes(), get_num_parent_classes(), get_parent_class(), get_parent_towards(), record_alternate_name(), record_derivation(), and register_type().

TypeRegistry * TypeRegistry::ptr  )  [static]
 

Definition at line 439 of file typeRegistry.cxx.

References _global_pointer, init_global_pointer(), and NULL.

Referenced by FindApproxPath::add_component(), WritableConfigurable::init_type(), TypedWritableReferenceCount::init_type(), TypedWritable::init_type(), BamReader::read_handle(), and reregister_types().

void TypeRegistry::rebuild_derivations  )  [private]
 

Definition at line 492 of file typeRegistry.cxx.

References _handle_registry, TypeRegistryNode::_parent_classes, _root_classes, TypeRegistryNode::clear_subtree(), TypeRegistryNode::define_subtree(), and NULL.

void TypeRegistry::record_alternate_name TypeHandle  type,
const string &  name
 

Definition at line 208 of file typeRegistry.cxx.

References TypeRegistryNode::_name, _name_registry, look_up(), NULL, and type.

Referenced by WritableConfigurable::init_type(), TypedWritableReferenceCount::init_type(), and TypedWritable::init_type().

void TypeRegistry::record_derivation TypeHandle  child,
TypeHandle  parent
 

Definition at line 179 of file typeRegistry.cxx.

References TypeRegistryNode::_child_classes, _derivations_fresh, TypeRegistryNode::_parent_classes, look_up(), and NULL.

Referenced by BamReader::read_handle().

TypeHandle TypeRegistry::register_dynamic_type const string &  name  ) 
 

Definition at line 135 of file typeRegistry.cxx.

References _derivations_fresh, TypeRegistryNode::_handle, _handle_registry, TypeHandle::_index, and _name_registry.

Referenced by BamReader::read_handle().

bool TypeRegistry::register_type TypeHandle type_handle,
const string &  name
 

Definition at line 46 of file typeRegistry.cxx.

References _derivations_fresh, TypeRegistryNode::_handle, _handle_registry, TypeHandle::_index, TypeRegistryNode::_name, _name_registry, TypeRegistryNode::_ref, look_up(), TypeHandle::none(), and NULL.

void TypeRegistry::reregister_types  )  [static]
 

Definition at line 395 of file typeRegistry.cxx.

References TypeRegistryNode::_handle, _handle_registry, TypeRegistryNode::_name, TypeRegistryNode::_ref, NULL, and ptr().

void TypeRegistry::write ostream &  out  )  const
 

Definition at line 418 of file typeRegistry.cxx.

References _handle_registry, NULL, root, and write_node().

Referenced by look_up().

void TypeRegistry::write_node ostream &  out,
int  indent_level,
const TypeRegistryNode node
const [private]
 

Definition at line 534 of file typeRegistry.cxx.

References TypeRegistryNode::_child_classes, TypeRegistryNode::_handle, TypeRegistryNode::_name, TypeRegistryNode::_parent_classes, TypeHandle::get_index(), and indent().

Referenced by write().


Member Data Documentation

PUBLISHED TypeRegistry::__pad0__
 

Definition at line 53 of file typeRegistry.h.

bool TypeRegistry::_derivations_fresh [private]
 

Definition at line 109 of file typeRegistry.h.

Referenced by record_derivation(), register_dynamic_type(), register_type(), and TypeRegistry().

TypeRegistry * TypeRegistry::_global_pointer = NULL [static, private]
 

Definition at line 31 of file typeRegistry.cxx.

Referenced by init_global_pointer(), and ptr().

HandleRegistry TypeRegistry::_handle_registry [private]
 

Definition at line 101 of file typeRegistry.h.

Referenced by look_up(), rebuild_derivations(), register_dynamic_type(), register_type(), reregister_types(), TypeRegistry(), and write().

NameRegistry TypeRegistry::_name_registry [private]
 

Definition at line 104 of file typeRegistry.h.

Referenced by record_alternate_name(), register_dynamic_type(), and register_type().

RootClasses TypeRegistry::_root_classes [private]
 

Definition at line 107 of file typeRegistry.h.

Referenced by get_num_root_classes(), get_root_class(), and rebuild_derivations().


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