00001 00023 #ifndef _genericlink_h_INC 00024 #define _genericlink_h_INC 00025 00026 #include "../interfaces/irisLink.h" 00027 #include "../../../util/genericData.h" 00028 #include "../../data_types/impl/irisEvent.h" 00029 00030 using namespace std; 00031 extern ullint max_sim_time; 00032 00033 class GenericLink : public IrisLink 00034 { 00035 public: 00036 GenericLink() {} /* constructor */ 00037 ~GenericLink () {} 00038 uint cycles; 00039 uint stages; 00040 void setup(); 00041 void process_event(IrisEvent* e); 00042 string toString() const; 00043 string print_stats() const; 00044 ullint get_flits_utilization(); 00045 ullint get_credits_utilization(); 00046 ullint flits_passed; 00047 ullint credits_passed; 00048 uint link_id; 00049 bool is_dateline; 00050 00051 protected: 00052 00053 private: 00054 uint node_ip; 00055 void handle_link_arrival_event(IrisEvent* e); 00056 00057 }; /* ----- end of class GenericLink ----- */ 00058 00059 00060 #endif /* ----- #ifndef _genericlink_h_INC ----- */ 00061