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 #include <vector> 00008 00009 class DynamicModule; 00010 00011 namespace risc { 00012 00013 class PathInstanceMapper { 00014 00015 public: 00016 00017 PathInstanceMapper(); 00018 00023 void print_mapping(); 00024 00025 typedef std::pair<InstanceTree, int> PathWithID; 00026 00030 std::vector<PathWithID> path_to_id_mapping_; 00031 00035 int max_instances_; 00036 00042 virtual bool perform_dynamic_analysis() = 0; 00043 00050 virtual InstanceTree 00051 get_instance_tree(int id, std::list<InstanceTree> potential_instances); 00052 00059 virtual int get_id(InstanceTree tree); 00060 00066 virtual DynamicModule* get_dynamic_tree_root(); 00067 00074 virtual int* get_global_variable_address(std::string variable_name); 00075 00082 virtual std::string get_global_variable_name(int *variable_address); 00083 }; 00084 00085 }; // end of namespace risc 00086 00087 #endif /* PATH_INSTANCE_MAPPER_H_INCLUDED_ */ 00088 00089 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */