00001 /* 00002 * ===================================================================================== 00003 * 00004 * Filename: router.h 00005 * 00006 * Description: 00007 * 00008 * Version: 1.0 00009 * Created: 02/19/2010 12:17:15 AM 00010 * Revision: none 00011 * Compiler: gcc 00012 * 00013 * Author: Mitchelle Rasquinha (), mitchelle.rasquinha@gatech.edu 00014 * Company: Georgia Institute of Technology 00015 * 00016 * ===================================================================================== 00017 */ 00018 #ifndef _router_h_INC 00019 #define _router_h_INC 00020 00021 #include "networkComponent.h" 00022 00023 using namespace std; 00024 00025 /* 00026 * ===================================================================================== 00027 * Class: Router 00028 * Description: 00029 * ===================================================================================== 00030 */ 00031 class Router : public NetworkComponent 00032 { 00033 public: 00034 Router (){ 00035 type = NetworkComponent::router; 00036 } /* constructor */ 00037 ~Router () {} 00038 vector <NetworkComponent* > input_connections; 00039 vector <NetworkComponent* > output_connections; 00040 virtual void set_no_nodes( unsigned int nodes) = 0; 00041 virtual void init(uint p, uint v, uint c, uint b) = 0; 00042 virtual string toString () const; 00043 virtual string print_stats() = 0; 00044 virtual void set_grid_x_location ( uint a, uint b, uint c) = 0; 00045 virtual void set_grid_y_location ( uint a, uint b, uint c) = 0; 00046 00047 uint ports; 00048 uint vcs; 00049 uint credits; 00050 uint buffer_size; 00051 protected: 00052 00053 private: 00054 00055 }; /* ----- end of class Router ----- */ 00056 00057 #endif /* ----- #ifndef _router_h_INC ----- */ 00058