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 00007 namespace risc { 00008 00009 namespace sg { 00010 00017 class TimeAdvanceTable { 00018 00019 private: 00020 00021 typedef boost::graph_traits<risc::sg::Graph>::vertex_iterator VertexIterator; 00022 00023 public: 00027 TimeAdvanceTable(SegmentGraph &graph); 00028 00032 ~TimeAdvanceTable(); 00033 00038 void determine_conflict_table(); 00039 00045 void print_current_time_advance_table(std::string filename); 00046 00051 void print_next_time_advance_table(std::string filename); 00052 00058 void print_time_table(Time *table, std::string filename); 00059 00065 Time get_waiting_time_for_segment(VertexIterator Segment); 00066 00070 SegmentGraph &segment_graph_; 00071 00075 int size_; 00076 00081 std::vector<VertexIterator> table_index_segment_lookup_; 00082 00088 int get_segment_id(int index); 00089 00095 long long convert_si_magnitude(std::string magnitude); 00096 00100 Time *current_time_advance_; 00101 Time *next_time_advance_; 00102 }; 00103 00104 }; // end of namesapce sg 00105 00106 }; // end of namespace risc 00107 00108 #endif /* TIME_ADVANCED_TABLE_H_INCLUDED_ */ 00109 00110 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */