6#include "../Global/fmodule.h"
7#include "../Global/CheckedIO.h"
9#include "../Branch/BranchRecord.h"
10#include <boost/serialization/export.hpp>
11#include "../Global/SimulationContext.h"
12#include <boost/archive/binary_oarchive.hpp>
13#include <boost/archive/binary_iarchive.hpp>
34 auto apd = make_unique<AnalysisProcedureDataContainerUnit>();
43 auto asd = make_unique<AnalysisScanDataContainerUnit>();
44 asd->setAnalysisScanDataTime(_time);
45 asd->setAnalysisScanDataOperator(_operator);
51 asd->alarm_name.push_back(str);
52 asd->alarm_priority.push_back(priority);
59 asd->component_name.push_back(str);
60 asd->component_priority.push_back(priority);
67 asd->support_system_name.push_back(str);
68 asd->support_system_priority.push_back(priority);
75 asd->parameter_name.push_back(str);
76 asd->parameter_priority.push_back(priority);
82 auto aip = make_unique<AnalysisInfoContainerUnit>(
r5pars_.timesno, str, _branch_ID);
83 record.push_back(std::move(aip));
88 string file_name_record = strDirName;
89 string file_name_procedure = strDirName;
90 string file_name_scan_data = strDirName;
91 file_name_record +=
"Scenario info.txt";
92 file_name_procedure +=
"Procedure data.txt";
93 file_name_scan_data +=
"Scan data.txt";
95 ofstream fout(file_name_record.c_str(), ios::app);
96 fout <<
"*********************************************\n"
97 <<
"*** Event Hightlights for Sequence " << iSeqNum <<
" ***\n"
98 <<
"*********************************************\n";
100 ai->saveInfoToFile(fout);
104 ofstream fout1(file_name_procedure.c_str(), ios::app);
105 fout1<<
"*********************************************\n"
106 <<
"*** Event Hightlights for Sequence " << iSeqNum <<
" ***\n"
107 <<
"*********************************************\n";
109 fout1<<
"Time" <<
'\t'
110 <<
"Operator" <<
'\t'
111 <<
"Procedure" <<
'\t'
114 <<
"Relevance" <<
'\t'
115 <<
"Time_Load_PIF" <<
'\t'
116 <<
"Dynamic_Factor" <<
'\t'
117 <<
"Static_Factor" <<
'\t'
118 <<
"Skip_Probability" <<
'\n';
121 apd->saveProcedureDataInfotoFile(fout1);
126 ofstream fout2(file_name_scan_data.c_str(), ios::app);
127 fout2<<
"*********************************************\n"
128 <<
"*** Event Hightlights for Sequence " << iSeqNum <<
" ***\n"
129 <<
"*********************************************\n";
131 fout2<<
"Time" <<
'\t'
132 <<
"Operator" <<
'\t'
133 <<
"Scan Queue Size" <<
'\n';
136 asd->saveScanDataInfotoFile(fout2);
148 this->procedure_step_data.clear();
149 this->scan_data.clear();
152 for(
auto& src : _ai.
record){
153 auto record_pt = make_unique<AnalysisInfoContainerUnit>();
154 record_pt->copyAnalysisInfoContainerUnit(*src);
155 this->record.push_back(std::move(record_pt));
159 auto procedure_pt = make_unique<AnalysisProcedureDataContainerUnit>();
160 procedure_pt->copyAnalysisProcedureDataContainerUnit(*src);
161 this->procedure_step_data.push_back(std::move(procedure_pt));
165 auto scan_pt = make_unique<AnalysisScanDataContainerUnit>();
166 scan_pt->copyAnalysisScanDataContainerUnit(*src);
167 this->scan_data.push_back(std::move(scan_pt));
177 auto aip = make_unique<AnalysisInfoContainerUnit>(_time, _str);
178 record.push_back(std::move(aip));
182 num = this->record.size();
183 fout <<
"AnalysisInfoContainer\n" << num <<
'\n';
184 for(i = 0; i < num; i++){
185 this->record.at(i)->saveAnalysisInfoContainerUnitToFile(fout);
188 num = this->procedure_step_data.size();
189 fout <<
"AnalysisProcedureDataContainer\n" << num <<
'\n';
190 for(i = 0; i < num; i++){
191 this->procedure_step_data.at(i)->saveAnalysisProcedureDataContainerUnittoFile(fout);
194 num = this->scan_data.size();
195 fout <<
"AnalysisScanDataContainer\n" << num <<
'\n';
196 for(i = 0; i <num; i++) {
197 this->scan_data.at(i)->saveAnalysisScanDataContainerUnittoFile(fout);
206 if (str !=
"AnalysisInfoContainer"){
207 ofstream fout(
"err messages.txt", ios::app);
208 cout <<
"AnalysisInfoContainer::retrieveAnalysisInfoContainerFromFile retrieval error in previous function" << endl;
209 fout <<
r5pars_.timesno <<
" AnalysisInfoContainer::retrieveAnalysisInfoContainerFromFile retrieval error in previous function\n";
217 for(i = 0; i < num; i++){
218 auto record_pt = make_unique<AnalysisInfoContainerUnit>();
219 record_pt->retrieveAnalysisInfoContainerUnitFromFile(fin);
220 this->record.push_back(std::move(record_pt));
224 if (str !=
"AnalysisProcedureDataContainer"){
225 ofstream fout(
"err messages.txt", ios::app);
226 cout <<
"AnalysisInfoContainer::retrieveAnalysisProcedureContainerFromFile retrieval error in previous function" << endl;
227 fout <<
r5pars_.timesno <<
" AnalysisInfoContainer::retrieveAnalysisProcedureContainerFromFile retrieval error in previous function\n";
235 for(i = 0; i< num; i++){
236 auto procedure_pt = make_unique<AnalysisProcedureDataContainerUnit>();
237 procedure_pt->retrieveAnalysisProcedureDataContainerUnitfromFile(fin);
238 this->procedure_step_data.push_back(std::move(procedure_pt));
242 if (str !=
"AnalysisScanDataContainer"){
243 ofstream fout(
"err messages.txt", ios::app);
244 cout <<
"AnalysisInfoContainer::retrieveAnalysisScanDataContainerFromFile retrieval error in previous function" << endl;
245 fout <<
r5pars_.timesno <<
" AnalysisInfoContainer::retrieveAnalysisScanDataContainerFromFile retrieval error in previous function\n";
253 for(i = 0; i< num; i++){
254 auto scan_data_pt = make_unique<AnalysisScanDataContainerUnit>();
255 scan_data_pt->retrieveAnalysisScanDataContainerUnitfromFile(fin);
256 this->scan_data.push_back(std::move(scan_data_pt));
bool checked_close(std::ofstream &ofs, const std::string &path)
Flush and close an output stream and report a failed write.
Simulation configuration, directory management, CLI options, and truncation control.
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
void copyAnalysisInfoContainer(AnalysisInfoContainer &)
void retrieveAnalysisInfoContainerFromFile(std::ifstream &)
void clearAnalysisInfoContainerForRestart()
void addRecord(std::string, int)
virtual ~AnalysisInfoContainer()
std::vector< std::unique_ptr< AnalysisInfoContainerUnit > > record
void addScanQueueData(double, int, KBScannedParameters &)
void addProcedureData(AnalysisProcedureDataContainerUnit)
void addRecordWithTime(double, std::string)
void clearAnalysisInfoContainerRecord()
std::vector< std::unique_ptr< AnalysisProcedureDataContainerUnit > > procedure_step_data
void saveAnalysisInfoContainerToFile(std::ofstream &)
std::vector< std::unique_ptr< AnalysisScanDataContainerUnit > > scan_data
void copyAnalysisInfoContainerForRestart(AnalysisInfoContainer &)
void setTempTypeOfConsequence(Consequence)
Stores the consequence of the end state the running sequence will get.
int getIDOfRecentGeneratedES()
void setTempESMessage(std::string)
Stores the description of the end state the running sequence will get if it is terminated (set by mod...
std::vector< std::shared_ptr< BranchExpectedParameterValue > > parameter_scan_list
std::vector< std::shared_ptr< BranchExpectedSupportSystemState > > support_system_scan_list
std::vector< std::shared_ptr< BranchExpectedAlarmState > > alarm_scan_list
std::vector< std::shared_ptr< BranchExpectedComponentState > > component_scan_list
std::string getESDirectory()
Scheduler SScheduler
Simulation scheduling, parses CLI options.
BranchRecord Branch_center
Dynamic event tree state.