39 lines
640 B
C++
39 lines
640 B
C++
/*
|
|
* Fifo.cpp
|
|
*
|
|
* Created on: Mar 19, 2014
|
|
* Author: robert
|
|
*/
|
|
|
|
#include "Fifo.h"
|
|
|
|
|
|
namespace scheduler {
|
|
|
|
bool Fifo::hasTransactionForBank(Bank bank)
|
|
{
|
|
return !buffer[bank].empty();
|
|
}
|
|
|
|
void Fifo::schedule(gp* payload)
|
|
{
|
|
buffer[DramExtension::getExtension(payload).getBank()].push_back(payload);
|
|
}
|
|
|
|
gp* Fifo::getTransactionForBank(Bank bank)
|
|
{
|
|
sc_assert(hasTransactionForBank(bank));
|
|
gp* result = buffer[bank].front();
|
|
return result;
|
|
}
|
|
|
|
void Fifo::popTransactionForBank(Bank bank, gp* payload)
|
|
{
|
|
sc_assert(DramExtension::getExtension(payload).getBank() == bank);
|
|
|
|
buffer[bank].pop_front();
|
|
}
|
|
|
|
} /* namespace scheduler */
|
|
|