00001 /* 00002 * ===================================================================================== 00003 * 00004 * Filename: interface.h 00005 * 00006 * Description: 00007 * 00008 * Version: 1.0 00009 * Created: 02/18/2010 11:28:55 PM 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 _interface_h_INC 00019 #define _interface_h_INC 00020 00021 #include "networkComponent.h" 00022 #include "buffer.h" 00023 #include "irisLink.h" 00024 #include "../../data_types/impl/irisEvent.h" 00025 00026 /* 00027 * ===================================================================================== 00028 * Class: Interface 00029 * Description: 00030 * ===================================================================================== 00031 */ 00032 class Interface: public NetworkComponent 00033 { 00034 public: 00035 NetworkComponent* processor_connection; 00036 IrisLink* input_connection; 00037 IrisLink* output_connection; 00038 Interface (); /* constructor */ 00039 virtual ~Interface(); 00040 virtual string toString () const; 00041 virtual void setup(uint a, uint cr, uint bs) = 0; 00042 virtual void set_no_credits( int cr ) = 0; 00043 virtual void set_buffer_size( uint cr ) = 0; 00044 virtual void set_no_vcs( uint cr ) = 0; 00045 virtual void process_event( IrisEvent* e) = 0; 00046 virtual string print_stats () = 0; 00047 virtual ullint get_packets_out () = 0; 00048 virtual ullint get_packets() = 0; 00049 virtual ullint get_flits_out () = 0; 00050 00051 protected: 00052 00053 private: 00054 00055 }; /* ----- end of class Interface ----- */ 00056 00057 #endif /* ----- #ifndef _interface_h_INC ----- */