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

FactoryBase Class Reference

#include <factoryBase.h>

Inheritance diagram for FactoryBase:

Factory< Type > List of all members.

Public Types

typedef TypedObjectBaseCreateFunc (const FactoryParams &params)

Public Member Functions

 FactoryBase ()
 ~FactoryBase ()
TypedObjectmake_instance (TypeHandle handle, const FactoryParams &params)
INLINE TypedObjectmake_instance (const string &type_name, const FactoryParams &params)
TypedObjectmake_instance_more_general (TypeHandle handle, const FactoryParams &params)
INLINE TypedObjectmake_instance_more_general (const string &type_name, const FactoryParams &params)
TypeHandle find_registered_type (TypeHandle handle)
void register_factory (TypeHandle handle, BaseCreateFunc *func)
int get_num_types () const
TypeHandle get_type (int n) const
void clear_preferred ()
void add_preferred (TypeHandle handle)
int get_num_preferred () const
TypeHandle get_preferred (int n) const
void write_types (ostream &out, int indent_level=0) const

Private Types

typedef pmap< TypeHandle,
BaseCreateFunc * > 
Creators
typedef pvector< TypeHandlePreferred

Private Member Functions

 FactoryBase (const FactoryBase &copy)
void operator= (const FactoryBase &copy)
TypedObjectmake_instance_exact (TypeHandle handle, const FactoryParams &params)
TypedObjectmake_instance_more_specific (TypeHandle handle, const FactoryParams &params)

Private Attributes

Creators _creators
Preferred _preferred

Member Typedef Documentation

typedef TypedObject* FactoryBase::BaseCreateFunc(const FactoryParams &params)
 

Definition at line 47 of file factoryBase.h.

typedef pmap<TypeHandle, BaseCreateFunc *> FactoryBase::Creators [private]
 

Definition at line 99 of file factoryBase.h.

typedef pvector<TypeHandle> FactoryBase::Preferred [private]
 

Definition at line 104 of file factoryBase.h.


Constructor & Destructor Documentation

FactoryBase::FactoryBase  ) 
 

Definition at line 29 of file factoryBase.cxx.

FactoryBase::~FactoryBase  ) 
 

Definition at line 38 of file factoryBase.cxx.

FactoryBase::FactoryBase const FactoryBase &  copy  )  [private]
 

Definition at line 266 of file factoryBase.cxx.


Member Function Documentation

void FactoryBase::add_preferred TypeHandle  handle  ) 
 

Definition at line 217 of file factoryBase.cxx.

References _preferred, and TypeHandle::none().

void FactoryBase::clear_preferred  ) 
 

Definition at line 203 of file factoryBase.cxx.

References _preferred.

TypeHandle FactoryBase::find_registered_type TypeHandle  handle  ) 
 

Definition at line 123 of file factoryBase.cxx.

References _creators, TypeHandle::get_num_parent_classes(), TypeHandle::get_parent_class(), and TypeHandle::none().

Referenced by BamWriter::write_object().

int FactoryBase::get_num_preferred  )  const
 

Definition at line 229 of file factoryBase.cxx.

References _preferred.

Referenced by get_preferred().

int FactoryBase::get_num_types  )  const
 

Definition at line 168 of file factoryBase.cxx.

References _creators.

Referenced by get_type().

TypeHandle FactoryBase::get_preferred int  n  )  const
 

Definition at line 240 of file factoryBase.cxx.

References _preferred, get_num_preferred(), n, and TypeHandle::none().

TypeHandle FactoryBase::get_type int  n  )  const
 

Definition at line 182 of file factoryBase.cxx.

References _creators, get_num_types(), n, and TypeHandle::none().

INLINE TypedObject* FactoryBase::make_instance const string &  type_name,
const FactoryParams params
 

Reimplemented in Factory< Type >, and Factory< TypedWritable >.

TypedObject * FactoryBase::make_instance TypeHandle  handle,
const FactoryParams params
 

Reimplemented in Factory< Type >, and Factory< TypedWritable >.

Definition at line 51 of file factoryBase.cxx.

References TypedObject::get_type(), make_instance_exact(), make_instance_more_specific(), NULL, and params.

TypedObject * FactoryBase::make_instance_exact TypeHandle  handle,
const FactoryParams params
[private]
 

Definition at line 287 of file factoryBase.cxx.

References _creators, and NULL.

Referenced by make_instance(), make_instance_more_general(), and make_instance_more_specific().

INLINE TypedObject* FactoryBase::make_instance_more_general const string &  type_name,
const FactoryParams params
 

Reimplemented in Factory< Type >, and Factory< TypedWritable >.

TypedObject * FactoryBase::make_instance_more_general TypeHandle  handle,
const FactoryParams params
 

Reimplemented in Factory< Type >, and Factory< TypedWritable >.

Definition at line 82 of file factoryBase.cxx.

References TypeHandle::get_num_parent_classes(), TypeHandle::get_parent_class(), TypedObject::get_type(), make_instance_exact(), NULL, and params.

TypedObject * FactoryBase::make_instance_more_specific TypeHandle  handle,
const FactoryParams params
[private]
 

Definition at line 307 of file factoryBase.cxx.

References _creators, _preferred, TypeHandle::is_derived_from(), make_instance_exact(), NULL, and params.

Referenced by make_instance().

void FactoryBase::operator= const FactoryBase &  copy  )  [private]
 

Definition at line 275 of file factoryBase.cxx.

void FactoryBase::register_factory TypeHandle  handle,
BaseCreateFunc func
 

Definition at line 155 of file factoryBase.cxx.

References _creators, TypeHandle::none(), and NULL.

void FactoryBase::write_types ostream &  out,
int  indent_level = 0
const
 

Definition at line 252 of file factoryBase.cxx.

References _creators, and indent().


Member Data Documentation

Creators FactoryBase::_creators [private]
 

Definition at line 102 of file factoryBase.h.

Referenced by find_registered_type(), get_num_types(), get_type(), make_instance_exact(), make_instance_more_specific(), register_factory(), and write_types().

Preferred FactoryBase::_preferred [private]
 

Definition at line 105 of file factoryBase.h.

Referenced by add_preferred(), clear_preferred(), get_num_preferred(), get_preferred(), and make_instance_more_specific().


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