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