Fixed memory leak
Added logging
This commit is contained in:
@ -5,21 +5,17 @@
|
||||
#include "Surplus.h"
|
||||
#include "../model/Building.h"
|
||||
#include <algorithm>
|
||||
#include <execution>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <spdlog/spdlog.h>
|
||||
|
||||
|
||||
void Surplus::CalculateSurplus()
|
||||
{
|
||||
void Surplus::CalculateSurplus() {
|
||||
auto iterateFunc = Community::iterateBuildings(communities);
|
||||
auto modifyCommunity = [](Community& c)
|
||||
{
|
||||
std::cout << "Processing Community\n";
|
||||
auto modifyCommunity = [](Community &c) {
|
||||
spdlog::info("Calculating Surplus for Community: {}", c.name());
|
||||
};
|
||||
auto modifyBuilding = [this](Building::Base& building)
|
||||
{
|
||||
std::cout << "Processing Building\n";
|
||||
auto modifyBuilding = [this](Building::Base &building) {
|
||||
spdlog::info("Calculating Surplus for Community: {}", building.metadata()->name());
|
||||
CalculateBuildingSurplus(building);
|
||||
};
|
||||
iterateFunc(modifyCommunity)(modifyBuilding);
|
||||
@ -27,15 +23,14 @@ void Surplus::CalculateSurplus()
|
||||
//TODO Calculate Relative Values
|
||||
}
|
||||
|
||||
void Surplus::CalculateBuildingSurplus(Building::Base& building)
|
||||
{
|
||||
std::vector<std::unique_ptr<float>> ownCoverage;
|
||||
std::vector<std::unique_ptr<float>> neededConsumption;
|
||||
std::vector<std::unique_ptr<float>> neededGeneration;
|
||||
std::vector<std::unique_ptr<float>> ownUsage;
|
||||
void Surplus::CalculateBuildingSurplus(Building::Base &building) {
|
||||
std::vector<std::unique_ptr<float> > ownCoverage;
|
||||
std::vector<std::unique_ptr<float> > neededConsumption;
|
||||
std::vector<std::unique_ptr<float> > neededGeneration;
|
||||
std::vector<std::unique_ptr<float> > ownUsage;
|
||||
|
||||
const auto& consumption = building.metadata()->consumption_profile();
|
||||
const auto& generation = building.metadata()->generation_profile();
|
||||
const auto &consumption = building.metadata()->consumption_profile();
|
||||
const auto &generation = building.metadata()->generation_profile();
|
||||
|
||||
ownCoverage.reserve(consumption.size());
|
||||
neededConsumption.reserve(consumption.size());
|
||||
@ -44,8 +39,7 @@ void Surplus::CalculateBuildingSurplus(Building::Base& building)
|
||||
|
||||
std::transform(consumption.begin(), consumption.end(),
|
||||
generation.begin(), std::back_inserter(ownCoverage),
|
||||
[&](const std::unique_ptr<float>& c, const std::unique_ptr<float>& g)
|
||||
{
|
||||
[&](const std::unique_ptr<float> &c, const std::unique_ptr<float> &g) {
|
||||
auto own_cov = std::make_unique<float>((c ? *c : 0.0f) - (g ? *g : 0.0f));
|
||||
ownCoverage.push_back(std::make_unique<float>(*own_cov));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user