← Documentation
ADS-IDAC Engine 5.0.0
ControlPanelControl.h
Go to the documentation of this file.
1#include <iostream>
2#include "PanelOverlayIO.h"
3#include <boost/serialization/split_member.hpp>
4#include <typeinfo>
5// ControlPanelControl.h: interface for the ControlPanelControl class.
6#pragma once
7#include "../System/SystemModule.h"
8#include "SystemControl.h"
9#include "ControlState.h"
10#include "ControlValue.h"
11#include "../System/SystemModule.h"
12#include <boost/serialization/export.hpp>
13
14#include <boost/serialization/access.hpp>
15#include <boost/serialization/vector.hpp>
16#include <boost/serialization/unique_ptr.hpp>
17#include <boost/serialization/map.hpp>
18#include <memory>
19#include <boost/serialization/string.hpp>
20#include <boost/archive/text_oarchive.hpp>
21#include <boost/archive/text_iarchive.hpp>
22
24{
25public:
27 virtual ~ControlPanelControl();
28 int readInfoFromFile(std::ifstream &);
30 void outputParametersLabelsToFile(std::ofstream &);
31 void outputParametersUnitsToFile(std::ofstream &);
32 void outputParametersValuesToFile(std::ofstream &);
33 SystemControl *getControlFromMap(std::string);
35 void executeValueControl(std::string, double);
36 void executeStateControl(std::string, int);
39 void saveControlPanelControlToFile(std::ofstream &);
40 void retrieveControlPanelControlFromFile(std::ifstream &);
41 //
42 std::vector<std::unique_ptr<ControlState>> control_state_array;
43 std::vector<std::unique_ptr<ControlValue>> control_value_array;
44 std::map<std::string, SystemControl *> control_map;
45 // Grant serialization access
47 BOOST_SERIALIZATION_SPLIT_MEMBER()
48 template<class Archive>
49 void save(Archive & ar, const unsigned int) const
50 {
51// std::cout << "Serializing class: " << typeid(*this).name() << std::endl;
52 // State overlay: element state is archived in place; control_map (raw
53 // pointers) is rebuilt by the master load and is never serialized.
56 }
57 template<class Archive>
58 void load(Archive &ar, const unsigned int) {
61 }
62};
Panel state overlay helpers: (de)serialize element arrays IN PLACE. The panel structure is seeded fro...
void outputParametersUnitsToFile(std::ofstream &)
void saveControlPanelControlToFile(std::ofstream &)
std::vector< std::unique_ptr< ControlValue > > control_value_array
std::map< std::string, SystemControl * > control_map
SystemControl * getControlFromMap(std::string)
void outputParametersValuesToFile(std::ofstream &)
void outputParametersLabelsToFile(std::ofstream &)
std::vector< std::unique_ptr< ControlState > > control_state_array
void load(Archive &ar, const unsigned int)
int readInfoFromFile(std::ifstream &)
void executeValueControl(std::string, double)
friend class boost::serialization::access
void executeStateControl(std::string, int)
void copyControlPanelControl(ControlPanelControl &)
void save(Archive &ar, const unsigned int) const
void retrieveControlPanelControlFromFile(std::ifstream &)
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)