From 0ba773d913450f88ff7bcf54a39e0c8a8c4d7d64 Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Thu, 6 May 2021 17:46:34 +0200 Subject: Refactoring and start extended version --- src/inputs.cc | 162 ---------------------------------------------------------- 1 file changed, 162 deletions(-) delete mode 100644 src/inputs.cc (limited to 'src/inputs.cc') diff --git a/src/inputs.cc b/src/inputs.cc deleted file mode 100644 index 84acdb7..0000000 --- a/src/inputs.cc +++ /dev/null @@ -1,162 +0,0 @@ -#include "inputs.hpp" -#include "xbt/log.h" -#include -#include -#include - - -Inputs::Inputs(std::string node_name){ - // Here we doing all the boring stuff - FILE* input_file = fopen(INPUTS_FILE, "rb"); - char input_file_buffer[JSON_BUFFER_SIZE]; - rapidjson::FileReadStream is(input_file, input_file_buffer, sizeof(input_file_buffer)); - d.ParseStream(is); - fclose(input_file); - - // Init all variables - is_sender=d[node_name.c_str()]["is_sender"].GetBool(); - use_hint=d[node_name.c_str()]["use_hint"].GetBool(); - data_size=d[node_name.c_str()]["data_size"].GetInt(); - for(auto& v:d[node_name.c_str()]["wake_ts"].GetArray()){ - wake_ts.push_back(v.GetDouble()); - } - for(auto& v:d[node_name.c_str()]["wake_duration"].GetArray()){ - wake_duration.push_back(v.GetDouble()); - } - - // Identity check - if(wake_ts.size()!=wake_duration.size()){ - std::cerr << "Invalid node configuration: wake_ts.size() != wake_duration.size()" <=next_ts){ - // Create variable for convenience - double start=cur_ts; - double end=std::max(cur_ts+cur_duration,next_ts+next_duration); - wake_duration[i]=end-start; - // Now remove next event - wake_ts.erase(wake_ts.begin() + i + 1); - wake_duration.erase(wake_duration.begin() + i +1); - // This is not optimal. Yet it is simple :D - MergeEvents(); - } - } -} - -double Inputs::GetNextTS(){ - // Ensure the caller is smart - if(wake_duration.size()<2){ - std::cerr << "You are trying to access to the next timestamp but it does not exists" <=ts){ - wake_ts.insert(it,ts); - break; - } - pos++; - } - - // Ensure that ts and duration should not go to the end - if(pos==wake_ts.size()){ - wake_ts.push_back(ts); - wake_duration.push_back(duration); - } - else { - // Handle durations here - int pos2=0; - for(auto it = std::begin(wake_duration); it != std::end(wake_duration); ++it) { - if(pos==pos2){ - wake_duration.insert(it,duration); - break; - } - else if (it+1==std::end(wake_duration)) { - wake_duration.push_back(duration); - } - pos2++; - } - } - // Don't forget - MergeEvents(); -} - -void Inputs::GeneratePlatform(std::string p){ - // The boring stuff - FILE* input_file = fopen(INPUTS_FILE, "rb"); - char input_file_buffer[JSON_BUFFER_SIZE]; - rapidjson::FileReadStream is(input_file, input_file_buffer, sizeof(input_file_buffer)); - rapidjson::Document d; - d.ParseStream(is); - fclose(input_file); - - // Write platform file - std::ofstream pf; - pf.open (p); - pf << "\n"; - pf << "\n"; - pf << "\n \n"; - pf << " \n"; - for (Value::ConstMemberIterator itr = d.MemberBegin(); itr != d.MemberEnd(); ++itr) - { - std::string name=itr->name.GetString(); - double power_on=d[itr->name.GetString()]["power_on"].GetDouble(); - double power_off=d[itr->name.GetString()]["power_off"].GetDouble(); - - //db=d[itr->name.GetString()]["wake_interval"].GetDouble(); - pf << " \n"; - pf << " \n"; - pf << " \n \n"; - pf << " \n"; - } - pf << " \n\n"; - pf.close(); -} \ No newline at end of file -- cgit v1.2.3