← Documentation
ADS-IDAC Engine 5.0.0
SPDS.h
Go to the documentation of this file.
1#include <iostream>
2#include <typeinfo>
3// SPDS.h
4#pragma once
5
6#include <deque>
7#include <fstream>
8#include <memory>
9#include <string>
10#include <vector>
11#include "SPDSUnit.h"
12#include "InfoChunk.h"
13#include <boost/serialization/serialization.hpp>
14#include <boost/serialization/vector.hpp>
15#include <boost/serialization/unique_ptr.hpp>
16#include <boost/serialization/deque.hpp>
17#include <boost/serialization/export.hpp>
18#include <boost/archive/text_oarchive.hpp>
19#include <boost/archive/text_iarchive.hpp>
20
21class SPDS {
22public:
23 SPDS();
24 virtual ~SPDS();
27 void setTimeLapseForUpdate(double);
28 double getTimeLapseForUpdate();
29 double getSPDSValue();
30 double getSPDSRate();
31 void setSPDSValue(double);
32 void SetSPDSRate(double);
33 void copySPDS(SPDS &);
34 void readInfoFromFile(std::string);
35 double getLastUpdateTime();
36 void setLastUpdateTime(double);
37 void saveSPDSToFile(std::ofstream &);
38 void retrieveSPDSFromFile(std::ifstream &);
39 void outputSPDSLabelToFile(std::string, std::ofstream &);
40 void outputSPDSUnitToFile(std::ofstream &);
41 void initiationForSimulation(std::string);
42 void clearSPDS();
43 std::vector<std::unique_ptr<SPDSUnit>> spds_input_array;
44 std::deque<double> spds_history;
45 std::deque<double> time;
46
47private:
49
50 // Grant serialization access
52
53 template<class Archive>
54 void serialize(Archive & ar, const unsigned int version) {
55// std::cout << "Serializing class: " << typeid(*this).name() << std::endl;
57 ar & SPDS_value;
58 ar & SPDS_rate;
61 ar & spds_history;
62 ar & time;
63 }
64};
Definition: SPDS.h:21
void setSPDSValue(double)
Definition: SPDS.cpp:57
double getSPDSRate()
Definition: SPDS.cpp:56
void copySPDS(SPDS &)
Definition: SPDS.cpp:60
void outputSPDSUnitToFile(std::ofstream &)
Definition: SPDS.cpp:168
virtual ~SPDS()
Definition: SPDS.cpp:26
double getSPDSValue()
Definition: SPDS.cpp:55
void retrieveSPDSFromFile(std::ifstream &)
Definition: SPDS.cpp:197
double last_update_time
Definition: SPDS.h:48
void saveSPDSToFile(std::ofstream &)
Definition: SPDS.cpp:176
double getTimeLapseForUpdate()
Definition: SPDS.cpp:54
void initiationForSimulation(std::string)
Definition: SPDS.cpp:35
void outputSPDSLabelToFile(std::string, std::ofstream &)
Definition: SPDS.cpp:159
void updateAllSPDSValueAndRate(InfoChunk *)
Definition: SPDS.cpp:106
void clearSPDS()
Definition: SPDS.cpp:30
void setTimeLapseForUpdate(double)
Definition: SPDS.cpp:53
std::deque< double > time
Definition: SPDS.h:45
SPDS()
Definition: SPDS.cpp:22
void SetSPDSRate(double)
Definition: SPDS.cpp:58
void serialize(Archive &ar, const unsigned int version)
Definition: SPDS.h:54
std::deque< double > spds_history
Definition: SPDS.h:44
void updateAllSPDSUnitValues(InfoChunk *)
Definition: SPDS.cpp:47
double SPDS_value
Definition: SPDS.h:48
void setLastUpdateTime(double)
Definition: SPDS.cpp:104
friend class boost::serialization::access
Definition: SPDS.h:51
void readInfoFromFile(std::string)
Definition: SPDS.cpp:79
std::vector< std::unique_ptr< SPDSUnit > > spds_input_array
Definition: SPDS.h:43
double SPDS_rate
Definition: SPDS.h:48
double getLastUpdateTime()
Definition: SPDS.cpp:103
double time_lapse_for_update
Definition: SPDS.h:48