← Documentation
ADS-IDAC Engine 5.0.0
ControlPanelDisplay.h
Go to the documentation of this file.
1#pragma once
2
3#include <iostream>
4#include "PanelOverlayIO.h"
5#include <boost/serialization/split_member.hpp>
6#include <typeinfo>
7#include <boost/serialization/vector.hpp>
8#include <boost/serialization/unique_ptr.hpp>
9#include <boost/serialization/map.hpp>
10#include <boost/archive/text_iarchive.hpp>
11#include <boost/archive/text_oarchive.hpp>
12#include <memory>
13#include <vector>
14#include <map>
15#include <string>
16#include <fstream>
17#include "../System/SystemModule.h"
18#include "SystemDisplay.h"
24#include <boost/serialization/export.hpp>
25
27public:
29 virtual ~ControlPanelDisplay();
30 int readInfoFromFile(std::ifstream &);
32 void outputParametersLabelsToFile(std::ofstream &);
33 void outputParametersUnitsToFile(std::ofstream &);
34 void outputParametersValuesToFile(double, std::ofstream &);
35 SystemDisplay *getDisplayFromMap(std::string);
40 void saveControlPanelDisplayToFile(std::ofstream &);
41 void retrieveControlPanelDisplayFromFile(std::ifstream &);
42 const std::vector<std::unique_ptr<DisplaySupportSystemState>> &getSupport_systems_state_array() const;
43
44 std::vector<std::unique_ptr<DisplayComponentState>> component_state_array;
45 std::vector<std::unique_ptr<DisplaySupportSystemState>> support_systems_state_array;
46 std::vector<std::unique_ptr<DisplayParameterValue>> parameter_value_array;
47 std::vector<std::unique_ptr<DisplayHeatStructure>> heat_structure_array;
48 std::vector<std::unique_ptr<DisplayParameterValueRate>> parameter_trend_array;
49 std::map<std::string, SystemDisplay *> display_map;
50
51private:
53 BOOST_SERIALIZATION_SPLIT_MEMBER()
54 template<class Archive>
55 void save(Archive &ar, const unsigned int) const {
56// std::cout << "Serializing class: " << typeid(*this).name() << std::endl;
57 // State overlay: element state is archived in place; display_map (raw
58 // pointers) is rebuilt by the master load and is never serialized.
64 }
65 template<class Archive>
66 void load(Archive &ar, const unsigned int) {
67 adsidac::load_array_state(ar, component_state_array, "component displays");
68 adsidac::load_array_state(ar, support_systems_state_array, "support-system displays");
69 adsidac::load_array_state(ar, parameter_value_array, "parameter displays");
70 adsidac::load_array_state(ar, heat_structure_array, "heat-structure displays");
72 }
73};
74
75
76BOOST_CLASS_EXPORT_KEY(ControlPanelDisplay)
Panel state overlay helpers: (de)serialize element arrays IN PLACE. The panel structure is seeded fro...
void copyControlPanelDisplay(ControlPanelDisplay &)
const std::vector< std::unique_ptr< DisplaySupportSystemState > > & getSupport_systems_state_array() const
void retrieveControlPanelDisplayFromFile(std::ifstream &)
std::vector< std::unique_ptr< DisplayComponentState > > component_state_array
std::vector< std::unique_ptr< DisplayParameterValueRate > > parameter_trend_array
std::map< std::string, SystemDisplay * > display_map
void outputParametersLabelsToFile(std::ofstream &)
void save(Archive &ar, const unsigned int) const
void outputParametersUnitsToFile(std::ofstream &)
std::vector< std::unique_ptr< DisplayParameterValue > > parameter_value_array
std::vector< std::unique_ptr< DisplayHeatStructure > > heat_structure_array
void outputParametersValuesToFile(double, std::ofstream &)
void saveControlPanelDisplayToFile(std::ofstream &)
int readInfoFromFile(std::ifstream &)
friend class boost::serialization::access
SystemDisplay * getDisplayFromMap(std::string)
std::vector< std::unique_ptr< DisplaySupportSystemState > > support_systems_state_array
void load(Archive &ar, const unsigned int)
void load_array_state(Archive &ar, std::vector< std::unique_ptr< T > > &v, const char *what)
void save_array_state(Archive &ar, const std::vector< std::unique_ptr< T > > &v)