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

MetaClassVisitor Class Reference

Template for registering Objects that associate with metaclasses. More...

#include <metaclass_visitor.h>

List of all members.

Public Methods

 MetaClassVisitor ()
virtual ~MetaClassVisitor ()
virtual void registerEntity ( const MetaClass* meta_class, VisitEntity entity )
virtual void registerDefaultEntity ( VisitEntity entity )
virtual VisitEntity retrieveEntity ( const MetaClass* mc )
virtual void clear_cache ()


Detailed Description

template<class VisitEntity> class MetaClassVisitor

Template for registering Objects that associate with metaclasses.

Registration is by meta-class. Lookup will find the registered entity for this metaclass or the first ancestor that was registered If there are no registered ancestors, the DefaultEntity will be returned

This implementation stores values by meta class id number and caches lookup values

With a proper registration mechnism to inform about new meta class names, we could register by name as well and look up the metaclass


Constructor & Destructor Documentation

template<class VisitEntity>
MetaClassVisitor<VisitEntity>::MetaClassVisitor<VisitEntity> ()

template<class VisitEntity>
MetaClassVisitor<VisitEntity>::~MetaClassVisitor<VisitEntity> () [inline, virtual]


Member Function Documentation

template<class VisitEntity>
void MetaClassVisitor<VisitEntity>::clear_cache () [inline, virtual]

template<class VisitEntity>
void MetaClassVisitor<VisitEntity>::registerDefaultEntity (
VisitEntity entity) [inline, virtual]

template<class VisitEntity>
void MetaClassVisitor<VisitEntity>::registerEntity (
const MetaClass * meta_class,
VisitEntity entity) [inline, virtual]

template<class VisitEntity>
VisitEntity MetaClassVisitor<VisitEntity>::retrieveEntity (
const MetaClass * mc) [inline, virtual]


The documentation for this class was generated from the following file:
Generated at Mon Jul 31 13:44:04 2000 for NCI SUIF by doxygen 1.1.2 written by Dimitri van Heesch, © 1997-2000