Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

VisitorMap Class Reference

dynamically-dispatched visitor for SuifObject objects. More...

#include <suifkernel/visitor_map.h>

List of all members.

Public Members

VisitorMap ( SuifEnv* suif )
~VisitorMap ()
void register_visit_method ( Address state, VisitMethod visitMethod, const LString &className )
void register_unknown_method ( Address state, VisitMethod visitMethod )
void apply ( Object* object )
void apply ( Object* object, const MetaClass* metaClass )
void register_visit_method ( Address state, VisitMethod visitMethod, MetaClass* mc )


Detailed Description

dynamically-dispatched visitor for SuifObject objects.

A dynamically-constructed visitor for SuifObjects, which dispatches on the most specific

VisitorMap example
To use this visitor map:

 // Write your visitor state class

 class MyVisitorInfo {
   static void do_static_procedure_definition( MyVisitorInfo *info,
                                               ProcedureDefinition *obj ) {
       info->do_procedure_definition(obj);
   }
   void do_procedure_definition(ProcedureDefinition *proc_def) {
     ...do_something...
   }
 }
 // register the visitor functions
 VisitorMap *map = new VisitorMap(suif_env);
 MyVisitorClass my_info;
 map->registerVisitMethod( &myinfo, 
                           &MyVisitorClass::do_static_procedure_definition,
                           ProcedureDefinition::get_class_name() );
 // Pick an object:
 //  SuifObject *so;
 map->apply(so);

Member Function Documentation

VisitorMap::VisitorMap (SuifEnv * suif)

VisitorMap::~VisitorMap ()

void VisitorMap::register_visit_method (Address state, VisitMethod visitMethod, const LString & className)

void VisitorMap::register_unknown_method (Address state, VisitMethod visitMethod)

void VisitorMap::apply (Object * object)

void VisitorMap::apply (Object * object, const MetaClass * metaClass)

void VisitorMap::register_visit_method (Address state, VisitMethod visitMethod, MetaClass * mc)


The documentation for this class was generated from the following files:
Generated at Wed Apr 25 17:35:09 2001 for NCI SUIF by doxygen  written by Dimitri van Heesch, © 1997-1999