00001 #ifndef TIME_ADVANCED_TABLE_H_INCLUDED_ 00002 #define TIME_ADVANCED_TABLE_H_INCLUDED_ 00003 00004 #include "segment_graph.h" 00005 #include "time.h" 00006 #include "../internal_representation/design.h" 00007 00008 namespace risc { 00009 00010 namespace sg { 00011 00018 class TimeAdvanceTable { 00019 00020 private: 00021 00022 typedef boost::graph_traits<risc::sg::Graph>::vertex_iterator VertexIterator; 00023 00024 public: 00028 TimeAdvanceTable(SegmentGraph &graph); 00029 00033 ~TimeAdvanceTable(); 00034 00039 void determine_conflict_table(); 00040 00046 void print_current_time_advance_table(std::string filename); 00047 00052 void print_next_time_advance_table(std::string filename); 00053 00059 void print_time_table(Time *table, std::string filename); 00060 00066 Time get_waiting_time_for_segment(VertexIterator Segment); 00067 00071 SegmentGraph &segment_graph_; 00072 00076 int size_; 00077 00082 std::vector<VertexIterator> table_index_segment_lookup_; 00083 00089 int get_segment_id(int index); 00090 00096 long long convert_si_magnitude(std::string magnitude); 00097 00101 Time *current_time_advance_; 00102 Time *next_time_advance_; 00103 }; 00104 00105 }; // end of namesapce sg 00106 00107 }; // end of namespace risc 00108 00109 #endif /* TIME_ADVANCED_TABLE_H_INCLUDED_ */ 00110 00111 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */