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

EggNameUniquifier Class Reference

#include <eggNameUniquifier.h>

Inheritance diagram for EggNameUniquifier:

EggObject TypedReferenceCount TypedObject ReferenceCount EggGroupUniquifier EggPoolUniquifier List of all members.

Public Member Functions

 EggNameUniquifier ()
 ~EggNameUniquifier ()
void clear ()
void uniquify (EggNode *node)
EggNodeget_node (const string &category, const string &name) const
bool has_name (const string &category, const string &name) const
bool add_name (const string &category, const string &name, EggNode *node=NULL)
virtual string get_category (EggNode *node)=0
virtual string filter_name (EggNode *node)
virtual string generate_name (EggNode *node, const string &category, int index)
virtual TypeHandle get_type () const
virtual TypeHandle force_init_type ()

Static Public Member Functions

TypeHandle get_class_type ()
void init_type ()

Private Types

typedef pmap< string, EggNode * > UsedNames
typedef pmap< string, UsedNamesCategories

Private Attributes

Categories _categories
int _index

Static Private Attributes

TypeHandle _type_handle

Member Typedef Documentation

typedef pmap<string, UsedNames> EggNameUniquifier::Categories [private]
 

Definition at line 113 of file eggNameUniquifier.h.

typedef pmap<string, EggNode *> EggNameUniquifier::UsedNames [private]
 

Definition at line 112 of file eggNameUniquifier.h.

Referenced by add_name(), get_node(), has_name(), and uniquify().


Constructor & Destructor Documentation

EggNameUniquifier::EggNameUniquifier  ) 
 

Definition at line 34 of file eggNameUniquifier.cxx.

References _index.

EggNameUniquifier::~EggNameUniquifier  ) 
 

Definition at line 44 of file eggNameUniquifier.cxx.


Member Function Documentation

bool EggNameUniquifier::add_name const string &  category,
const string &  name,
EggNode node = NULL
 

Definition at line 156 of file eggNameUniquifier.cxx.

References _categories, and UsedNames.

void EggNameUniquifier::clear  ) 
 

Definition at line 54 of file eggNameUniquifier.cxx.

References _categories, and _index.

string EggNameUniquifier::filter_name EggNode node  )  [virtual]
 

Reimplemented in EggGroupUniquifier.

Definition at line 171 of file eggNameUniquifier.cxx.

Referenced by generate_name(), and uniquify().

virtual TypeHandle EggNameUniquifier::force_init_type void   )  [inline, virtual]
 

Reimplemented from EggObject.

Reimplemented in EggGroupUniquifier, and EggPoolUniquifier.

Definition at line 131 of file eggNameUniquifier.h.

References EggObject::get_class_type(), and EggObject::init_type().

string EggNameUniquifier::generate_name EggNode node,
const string &  category,
int  index
[virtual]
 

Reimplemented in EggGroupUniquifier.

Definition at line 188 of file eggNameUniquifier.cxx.

References filter_name(), and index.

Referenced by uniquify().

virtual string EggNameUniquifier::get_category EggNode node  )  [pure virtual]
 

Implemented in EggGroupUniquifier, and EggPoolUniquifier.

Referenced by uniquify().

TypeHandle EggNameUniquifier::get_class_type void   )  [inline, static]
 

Reimplemented from EggObject.

Reimplemented in EggGroupUniquifier, and EggPoolUniquifier.

Definition at line 120 of file eggNameUniquifier.h.

Referenced by EggPoolUniquifier::force_init_type(), EggGroupUniquifier::force_init_type(), EggPoolUniquifier::get_type(), EggGroupUniquifier::get_type(), EggPoolUniquifier::init_type(), and EggGroupUniquifier::init_type().

EggNode * EggNameUniquifier::get_node const string &  category,
const string &  name
const
 

Definition at line 106 of file eggNameUniquifier.cxx.

References _categories, NULL, and UsedNames.

virtual TypeHandle EggNameUniquifier::get_type void   )  const [inline, virtual]
 

Reimplemented from EggObject.

Reimplemented in EggGroupUniquifier, and EggPoolUniquifier.

Definition at line 128 of file eggNameUniquifier.h.

References EggObject::get_class_type().

bool EggNameUniquifier::has_name const string &  category,
const string &  name
const
 

Definition at line 130 of file eggNameUniquifier.cxx.

References _categories, and UsedNames.

void EggNameUniquifier::init_type void   )  [inline, static]
 

Reimplemented from EggObject.

Reimplemented in EggGroupUniquifier, and EggPoolUniquifier.

Definition at line 123 of file eggNameUniquifier.h.

References EggObject::get_class_type(), EggObject::init_type(), and register_type().

Referenced by EggPoolUniquifier::force_init_type(), EggGroupUniquifier::force_init_type(), init_libegg(), EggPoolUniquifier::init_type(), and EggGroupUniquifier::init_type().

void EggNameUniquifier::uniquify EggNode node  ) 
 

Definition at line 65 of file eggNameUniquifier.cxx.

References _categories, _index, EggGroupNode::begin(), DCAST_INTO_V, EggGroupNode::end(), filter_name(), generate_name(), get_category(), EggGroupNode::get_class_type(), TypedObject::is_of_type(), EggGroupNode::iterator, NULL, and UsedNames.

Referenced by EggData::pre_write().


Member Data Documentation

Categories EggNameUniquifier::_categories [private]
 

Definition at line 115 of file eggNameUniquifier.h.

Referenced by add_name(), clear(), get_node(), has_name(), and uniquify().

int EggNameUniquifier::_index [private]
 

Definition at line 116 of file eggNameUniquifier.h.

Referenced by clear(), EggNameUniquifier(), and uniquify().

TypeHandle EggNameUniquifier::_type_handle [static, private]
 

Reimplemented from EggObject.

Reimplemented in EggGroupUniquifier, and EggPoolUniquifier.

Definition at line 25 of file eggNameUniquifier.cxx.


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