#include <suifkernel/visitor_map.h>
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 ) |
A dynamically-constructed visitor for SuifObjects, which dispatches on the most specific
// 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);
written by Dimitri van Heesch, © 1997-1999