13#include <boost/archive/binary_oarchive.hpp>
14#include <boost/archive/binary_iarchive.hpp>
15#include <boost/serialization/split_member.hpp>
20#include "../ControlPanel/StateOfActivation.h"
22#include "../Crew/ShortTermMemory.h"
24#include "../Scheduler/AnalysisInfoContainer.h"
25#include "../Scheduler/AnalysisProcedureDataContainerUnit.h"
28#include <boost/serialization/access.hpp>
29#include <boost/serialization/base_object.hpp>
30#include <boost/serialization/vector.hpp>
31#include <boost/serialization/unique_ptr.hpp>
32#include <boost/serialization/serialization.hpp>
33#include <boost/serialization/export.hpp>
88 std::unique_ptr<ProcedureActionUnit>
action;
112 BOOST_SERIALIZATION_SPLIT_MEMBER()
113 template<class Archive>
114 void save(Archive & ar, const
unsigned int)
const
116 ar & boost::serialization::base_object<StateOfActivation>(*
this);
126 if constexpr (std::is_same_v<Archive, boost::archive::binary_oarchive>) {
127 const uint32_t n_or =
static_cast<uint32_t
>(
expectation.size());
137 template<
class Archive>
138 void load(Archive & ar,
const unsigned int)
140 ar & boost::serialization::base_object<StateOfActivation>(*
this);
146 if constexpr (std::is_same_v<Archive, boost::archive::binary_iarchive>) {
150 throw std::runtime_error(
151 "ProcedureStepUnit state overlay: expectation count mismatch "
152 "against the seeded book");
161 template<
class Archive,
class T>
164 const bool present = (p !=
nullptr);
166 if (!present)
return;
167 if constexpr (std::is_same_v<Archive, boost::archive::binary_oarchive>)
172 template<
class Archive,
class T>
175 bool present =
false;
177 if (present != (p !=
nullptr))
178 throw std::runtime_error(
179 "ProcedureStepUnit state overlay: sub-unit presence mismatch "
180 "against the seeded book");
181 if (!present)
return;
182 if constexpr (std::is_same_v<Archive, boost::archive::binary_iarchive>)
void saveProcedureStepUnitNonResponseActionToFile(std::ofstream &)
bool executeExpectation(Operator &, ShortTermMemory &, int)
void setTypeOfNonResponseAction(int)
std::vector< std::unique_ptr< ExpectationORUnit > > expectation
int getNumberOfANDExpectation()
std::unique_ptr< ProcedureScannedParameterUnit > non_response_scan
std::unique_ptr< ProcedureStepInfo > mental_procedure
int getTypeOfNonResponseAction()
void retrieveProcedureStepUnitMentalProcedureFromFile(std::ifstream &)
void retrieveProcedureStepUnitFromFile(std::ifstream &)
void setStateOfNonResponseAction(int)
int getStateOfNonResponseAction()
void readInfofromFileExpectation(std::ifstream &, int)
void retrieveProcedureStepUnitExpectationFromFile(std::ifstream &)
bool hasNonResponseAction() const
double calculateDynamicHEPMultiplier(int, std::string, AnalysisProcedureDataContainerUnit &)
void save(Archive &ar, const unsigned int) const
int type_of_non_response_action
std::unique_ptr< ProcedureScannedParameterUnit > scanned_parameter
int checkForTypeOfExpectation(std::string)
bool executeAction(Operator &, ShortTermMemory &, int, std::string, std::string, std::string, double, double)
ProcedureStepInfo * getMentalProcedurePtr()
double calculateAdjustedSkipProbability(double, double)
void retrieveProcedureStepUnitNonResponseActionFromFile(std::ifstream &)
ProcedureScannedParameterUnit * getScannedParameterUnitPtr()
void load(Archive &ar, const unsigned int)
bool checkIfIsChangeSystemAction(std::string)
void setStateOfAction(int)
static void save_inplace(Archive &ar, const std::unique_ptr< T > &p)
static void load_inplace(Archive &ar, std::unique_ptr< T > &p)
ProcedureActionUnit * getActionPtr()
void saveProcedureStepUnitToFile(std::ofstream &)
int state_of_non_response_action
void setStateOfExpectation(int)
bool executeNonResponseAction(Operator &, ShortTermMemory &, int, std::string, std::string, double, double)
friend class boost::serialization::access
void setTypeOfAction(int)
void setActionPtr(ProcedureActionUnit *)
void saveProcedureStepUnitScannedParameterToFile(std::ofstream &)
std::unique_ptr< ProcedureStepInfo > non_response_procedure
bool readInfofromFile(std::ifstream &)
std::unique_ptr< ProcedureActionUnit > action
void saveProcedureStepUnitExpectationToFile(std::ofstream &)
void retrieveProcedureStepUnitActionFromFile(std::ifstream &)
virtual ~ProcedureStepUnit()
bool readInfoFromFileNonResponseExit(std::ifstream &)
void saveProcedureStepUnitMentalProcedureToFile(std::ofstream &)
void saveProcedureStepUnitActionToFile(std::ofstream &)
int getStateOfExpectation()
void copyProcedureStepUnit(ProcedureStepUnit &)
std::unique_ptr< ProcedureActionUnit > non_response_action_unit
int readInfofromFileAction(std::ifstream &)
void retrieveProcedureStepUnitScannedParameterFromFile(std::ifstream &)
int serialized_expectation_count