00001 #ifndef PATH_INSTANCE_MAPPER_H_INCLUDED_ 00002 #define PATH_INSTANCE_MAPPER_H_INCLUDED_ 00003 00004 #include "instance_tree.h" 00005 00006 #include <string> 00007 00008 class DynamicModule; 00009 00010 namespace risc { 00011 00012 class PathInstanceMapper { 00013 00014 public: 00015 00016 PathInstanceMapper(); 00017 00022 void print_mapping(); 00023 00024 typedef std::pair<InstanceTree, int> PathWithID; 00025 00029 std::vector<PathWithID> path_to_id_mapping_; 00030 00034 int max_instances_; 00035 00041 virtual bool perform_dynamic_analysis() = 0; 00042 00049 virtual InstanceTree 00050 get_instance_tree(int id, std::list<InstanceTree> potential_instances); 00051 00058 virtual int get_id(InstanceTree tree); 00059 00065 virtual DynamicModule* get_dynamic_tree_root(); 00066 00073 virtual int* get_global_variable_address(std::string variable_name); 00074 00081 virtual std::string get_global_variable_name(int *variable_address); 00082 }; 00083 00084 }; // end of namespace risc 00085 00086 #endif /* PATH_INSTANCE_MAPPER_H_INCLUDED_ */ 00087 00088 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */