vcaMsgAware.h

Go to the documentation of this file.
00001 
00024 #include        <vector>
00025 #include        <map>
00026 #include        <deque>
00027 #include        <algorithm>
00028 #include        "../interfaces/networkComponent.h"
00029 #include        "../../../util/genericData.h"
00030 
00031 using namespace std;
00032 
00033 class VcaMsgAware
00034 {
00035     public:
00036         VcaMsgAware ();
00037         ~VcaMsgAware ();
00038         vector< vector< map<uint, uint> > > winners;
00039         void init( uint ports, uint vcs);
00040         void set_no_msg_classes ( uint no_msg_classes );
00041         void request( uint output_port, uint msg_class_id, uint requestor_id /* Usually in_port*vcs+invc */, ullint req_arrival_time );
00042         uint pick_winners( void );
00043         uint get_no_requestors( void );
00044         void clear_winner( uint winner, uint oc);
00045 
00046     private:
00047         vector< vector< vector<uint> > > arbiter;
00048         vector< vector< vector<ullint> > > arbiter_arrival_time;
00049         vector< vector< deque<uint> > > available_vcs;
00050         uint vcs;
00051         uint ports;
00052         uint no_mclasses;
00053 };

Generated on Tue Oct 19 17:22:01 2010 for IRIS by  doxygen 1.5.8