Files
DRAMSys/dram/src/controller/scheduler/Fifo.cpp

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 */