00001 // $Id: printing_maps.h,v 1.1.1.1 2000/06/08 00:10:03 afikes Exp $ 00002 00003 #ifndef OSUIFPRINT__PRINTING_MAPS_H 00004 #define OSUIFPRINT__PRINTING_MAPS_H 00005 00006 #include <iostream.h> 00007 00008 #include "iokernel/iokernel_forwarders.h" 00009 #include "suifkernel/visitor_map.h" 00010 00011 00019 class PrintingMaps { 00020 private: 00021 LString _printing_maps_name; 00022 bool _done; 00023 int indent; 00024 00025 VisitorMap* _process_map; 00026 VisitorMap* _children_map; 00027 00028 public: 00029 PrintingMaps(SuifEnv *suif_env, const LString &printing_maps_name); 00030 00032 void init_suif_object(); 00033 00035 void process_a_suif_object(SuifObject *so); 00036 00037 // Accessors 00038 VisitorMap* get_children_map() const { return _children_map; } 00039 VisitorMap* get_process_map() { return _process_map; } 00040 LString get_printing_maps_name() const { return _printing_maps_name; } 00041 int getIndent() const { return indent; } 00042 00043 //void set_done(bool b) { _done = b; } 00044 00045 // Register methods 00046 void register_children_visit_method( Address state, 00047 VisitMethod visitMethod, 00048 const LString &name ); 00049 void register_process_visit_method( Address state, 00050 VisitMethod visitMethod, 00051 const LString &name ); 00052 00053 void incrementIndent(); 00054 void decrementIndent(); 00055 00057 bool is_done() const { return _done; } 00058 00059 private: 00060 PrintingMaps(const PrintingMaps &); 00061 PrintingMaps& operator=(const PrintingMaps &); 00062 00063 }; 00064 00065 #endif /* OSUIFPRINT__PRINTING_MAPS_H */