/* * BankwiseRefreshManager.cpp * * Created on: Mar 9, 2014 * Author: jonny */ #include "RefreshManager.h" #include "../Controller.h" using namespace std; namespace core { RefreshManager::RefreshManager(DramController& controller) : controller(controller) { assert(!controller.config.Timings.refreshTimings.empty()); for(Bank bank : controller.state.bankStates.getBanks()) { refreshManagerForBanks.push_back(new RefreshManagerForBank(controller, bank)); } } RefreshManager::~RefreshManager() { for(RefreshManagerForBank* manager : refreshManagerForBanks) { delete manager; } } bool RefreshManager::hasCollision(const CommandSchedule& schedule) { RefreshManagerForBank& manager = *refreshManagerForBanks.at(schedule.getBank().ID()); return manager.hasCollision(schedule); } void RefreshManager::scheduleRefresh(sc_time time) { for (unsigned int i = 0; i < refreshManagerForBanks.size(); ++i) { RefreshManagerForBank& manager = *refreshManagerForBanks.at(i); manager.scheduleRefresh(time); } } } /* namespace controller */