← Documentation
ADS-IDAC Engine 5.0.0
ControlPanelAlarm.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_oarchive.hpp>
11#include <boost/archive/text_iarchive.hpp>
12#include <memory>
13#include <vector>
14#include <map>
15#include <string>
16#include <fstream>
17#include "AlarmParameter.h"
18#include "AlarmComponent.h"
20#include "SystemAlarm.h"
21#include "ControlPanelDisplay.h"
22#include <boost/serialization/export.hpp>
23
25public:
27 virtual ~ControlPanelAlarm();
28 int readInfoFromFile(std::ifstream &);
30 void outputParametersLabelsToFile(std::ofstream &);
31 void outputParametersUnitsToFile(std::ofstream &);
32 void outputParametersValuesToFile(double, std::ofstream &);
33 SystemAlarm* getAlarmFromMap(std::string);
38 void saveControlPanelAlarmToFile(std::ofstream &);
39 void retrieveControlPanelAlarmFromFile(std::ifstream &);
40
41 std::vector<std::unique_ptr<AlarmParameter>> alarm_parameter_value_array;
42 std::vector<std::unique_ptr<AlarmComponent>> alarm_component_state_array;
43 std::vector<std::unique_ptr<AlarmTwoParameterDifference>> alarm_value_difference_array;
44 std::map<std::string, SystemAlarm*> alarm_map;
45
46private:
48 BOOST_SERIALIZATION_SPLIT_MEMBER()
49 template<class Archive>
50 void save(Archive &ar, const unsigned int) const {
51// std::cout << "Serializing class: " << typeid(*this).name() << std::endl;
52 // State overlay: element state is archived in place; alarm_map (raw
53 // pointers) is rebuilt by the master load and is never serialized.
57 }
58 template<class Archive>
59 void load(Archive &ar, const unsigned int) {
63 }
64};
65
66
67BOOST_CLASS_EXPORT_KEY(ControlPanelAlarm)
Panel state overlay helpers: (de)serialize element arrays IN PLACE. The panel structure is seeded fro...
std::vector< std::unique_ptr< AlarmTwoParameterDifference > > alarm_value_difference_array
void outputParametersValuesToFile(double, std::ofstream &)
void retrieveControlPanelAlarmFromFile(std::ifstream &)
std::map< std::string, SystemAlarm * > alarm_map
void load(Archive &ar, const unsigned int)
int readInfoFromFile(std::ifstream &)
void updateAllDisplayedAlarmState(ControlPanelDisplay &)
std::vector< std::unique_ptr< AlarmComponent > > alarm_component_state_array
void copyControlPanelAlarm(ControlPanelAlarm &)
void outputParametersUnitsToFile(std::ofstream &)
std::vector< std::unique_ptr< AlarmParameter > > alarm_parameter_value_array
friend class boost::serialization::access
void save(Archive &ar, const unsigned int) const
SystemAlarm * getAlarmFromMap(std::string)
void initiateAllAlarms(ControlPanelDisplay &)
void outputParametersLabelsToFile(std::ofstream &)
void saveControlPanelAlarmToFile(std::ofstream &)
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)