← Documentation
ADS-IDAC Engine 5.0.0
InfoChunk.h
Go to the documentation of this file.
1#include <iostream>
2#include <typeinfo>
3// InfoChunk.h: interface for the InfoChunk class.
4#pragma once
5#include <list>
6#include <boost/serialization/export.hpp>
7
8#include "DecisionGoal.h"
9#include "DecisionStrategy.h"
10#include "DecisionSubGoal.h"
11#include "DecisionDiagnosis.h"
13#include "DecisionActionPack.h"
14#include "DecisionActionPack.h"
16#include "MentalAlarm.h"
17#include "MentalControl.h"
21#include "../Scheduler/CommunicationPlace.h"
22#include "../Procedure/ExpectedMentalBelief.h"
23
24#include <vector>
25#include <memory>
26#include <boost/serialization/vector.hpp>
27#include <boost/serialization/shared_ptr.hpp>
28#include <boost/serialization/serialization.hpp>
29#include <boost/archive/text_oarchive.hpp>
30#include <boost/archive/text_iarchive.hpp>
31
32class InfoChunk {
33 public:
38 InfoChunk();
39 virtual ~InfoChunk();
40 void clearInfoChunk();
46 int getCurrentGoal();
49 int getStateOfAProcedureStep(std::string, std::string);
50 int getMentalPriorityOfAProcedureStep(std::string, std::string);
51 std::string getCurrentDiagnosis();
52 void addANewGoal(int, int);
53 void addANewStrategy(int, int);
54 void addANewDiagnosis(std::string, int);
55 void addANewSubGoal(int, int);
56 void addNewProcedureStep(std::string, std::string, int);
57 void addNewInstinctiveResponseProcedure(std::string, std::string, int, int, double);
59 std::string getCurrentProcedureName();
60 std::string getCurrentProceduralStepName();
67 bool isThereMentalProcedureWaitingForExecution(std::string, std::string);
72 void pauseCurrenDiagnosisAndAddANewOne(std::string);
82 void updateActionState(std::string, int);
83 void generateErrorMessage(std::string);
92 DecisionProcedureStep *checkExistanceOfAProcedure(std::string, std::string);
109 void copyInfoChunk(InfoChunk &);
110 bool diagnosisIsIncluded(std::string);
111 bool activateTheDiagnosis(std::string);
113 void setStateOfAProcedureStep(std::string, std::string, int);
114 void saveInfoChunkToFile(std::ofstream &);
115 void retrieveInfoChunkFromFile(std::ifstream &);
135 std::vector<std::shared_ptr<DecisionGoal>> goal;
136 std::vector<std::shared_ptr<DecisionStrategy>> strategy;
137 std::vector<std::shared_ptr<DecisionSubGoal>> subgoal;
138 std::vector<std::shared_ptr<DecisionDiagnosis>> diagnosis;
139 std::vector<std::shared_ptr<DecisionActionObjective>> action_objective;
140 std::vector<std::shared_ptr<DecisionActionPack>> action_pack;
141 std::vector<std::shared_ptr<DecisionAction>> action;
142 std::vector<std::shared_ptr<DecisionProcedureStep>> procedure_step;
143 std::vector<std::shared_ptr<DecisionProcedureStep>> instinctive_response_procedure;
144 std::vector<std::shared_ptr<MentalAlarm>> perceived_alarms;
145 std::vector<std::shared_ptr<MentalComponentState>> perceived_component_state;
146 std::vector<std::shared_ptr<MentalSupportSystemState>> perceived_support_system_state;
147 std::vector<std::shared_ptr<MentalParameterValue>> perceived_parameter_value;
148 std::vector<std::shared_ptr<MentalParameterTrend>> perceived_parameter_trend;
149 std::vector<std::shared_ptr<ExpectedMentalBelief>> mental_belief;
150 // Serialization function
151 template<class Archive>
152 void serialize(Archive & ar, const unsigned int version) {
153// std::cout << "Serializing class: " << typeid(*this).name() << std::endl;
154 ar & goal;
155 ar & strategy;
156 ar & subgoal;
157 ar & diagnosis;
158 ar & action_objective;
159 ar & action_pack;
160 ar & action;
161 ar & procedure_step;
163 ar & perceived_alarms;
168 ar & mental_belief;
169 }
170};
void replaceObjecByPointerForGroupedInfoActionPack(InfoChunk &)
Definition: InfoChunk.cpp:1801
bool diagnosisIsIncluded(std::string)
Definition: InfoChunk.cpp:1275
DecisionProcedureStep * identifyTheMentalProcedureToBePerformed(std::string, std::string)
Definition: InfoChunk.cpp:547
void pointToTheNewActionPack(DecisionActionPack *)
Definition: InfoChunk.cpp:755
std::vector< std::shared_ptr< MentalSupportSystemState > > perceived_support_system_state
Definition: InfoChunk.h:146
void interruptCurrentProcedureStep()
Definition: InfoChunk.cpp:1037
void replaceObjecByPointerForGroupedInfoProcedureStep(InfoChunk &)
Definition: InfoChunk.cpp:1868
void addANewSubGoal(int, int)
Definition: InfoChunk.cpp:259
DecisionAction * checkExistanceOfAction(std::string)
Definition: InfoChunk.cpp:834
int getCurrentGoal()
Definition: InfoChunk.cpp:82
DecisionSubGoal * getActiveSubGoalPt()
Definition: InfoChunk.cpp:2161
int getTotalNumberOfFailedDiagnosis()
Definition: InfoChunk.cpp:75
std::string getCurrentDiagnosis()
Definition: InfoChunk.cpp:125
void interruptCurrentSubGoal()
Definition: InfoChunk.cpp:982
void pauseCurrenDiagnosisAndAddANewOne(std::string)
Definition: InfoChunk.cpp:503
void interruptCurrentActionObjective()
Definition: InfoChunk.cpp:1004
std::vector< std::shared_ptr< MentalParameterValue > > perceived_parameter_value
Definition: InfoChunk.h:147
std::vector< std::shared_ptr< DecisionSubGoal > > subgoal
Definition: InfoChunk.h:137
void pointToTheNewGoal(DecisionGoal *)
Definition: InfoChunk.cpp:685
int ReturnPositionOfOneMentalParameterValue(MentalParameterValue *)
Definition: InfoChunk.cpp:2223
std::string getCurrentProceduralStepName()
Definition: InfoChunk.cpp:155
void interruptCurrentAction()
Definition: InfoChunk.cpp:1026
void clearInfoChunk()
Definition: InfoChunk.cpp:24
DecisionProcedureStep * getCurrentProcedureStepPtr(int)
Definition: InfoChunk.cpp:201
MentalParameterValue * checkExistanceOfPerceivedParameterValue(std::string)
Definition: InfoChunk.cpp:921
std::string getCurrentInstinctiveResponseProceduralStepName()
Definition: InfoChunk.cpp:185
void clearInfoChunkPointers()
Definition: InfoChunk.cpp:41
bool includeActiveDiagnosis()
Definition: InfoChunk.cpp:536
void replaceObjecByPointerForGroupedInfoSubGoal(InfoChunk &)
Definition: InfoChunk.cpp:1699
MentalAlarm * checkExistanceOfPerceivedAlarms(std::string)
Definition: InfoChunk.cpp:847
std::vector< std::shared_ptr< MentalParameterTrend > > perceived_parameter_trend
Definition: InfoChunk.h:148
DecisionStrategy * getActiveStrategyPt()
Definition: InfoChunk.cpp:2146
void replaceObjecByPointerForGroupedInfoStrategy(InfoChunk &)
Definition: InfoChunk.cpp:1665
void interruptCurrentDiagnosis()
Definition: InfoChunk.cpp:993
std::vector< std::shared_ptr< DecisionStrategy > > strategy
Definition: InfoChunk.h:136
int getCurrentSubGoal()
Definition: InfoChunk.cpp:111
std::string getCurrentProcedureName()
Definition: InfoChunk.cpp:140
int getTotalNumberOfAlarmPerceived()
Definition: InfoChunk.cpp:72
bool isThereMentalProcedureWaitingForExecution(std::string, std::string)
Definition: InfoChunk.cpp:608
void pauseCurrenSubGoalAndAddANewOne(int)
Definition: InfoChunk.cpp:491
int checkWhetherExpectedParameterValueMatchObservation(KBExpectedParameterValueUnit *)
Definition: InfoChunk.cpp:1105
void replaceObjecByPointerForGroupedInfoAlarm(InfoChunk &)
Definition: InfoChunk.cpp:1938
int ReturnPositionOfOneMentalAlarmInTheVector(MentalAlarm *)
Definition: InfoChunk.cpp:2240
void pauseCurrenGoalAndAddANewOne(int)
Definition: InfoChunk.cpp:467
DecisionProcedureStep * checkExistanceOfAProcedure(std::string, std::string)
Definition: InfoChunk.cpp:878
MentalComponentState * checkExistanceOfPerceivedComponentState(std::string)
Definition: InfoChunk.cpp:895
int checkWhetherExpectedAlarmMatchObservation(KBExpectedAlarmStateUnit *)
Definition: InfoChunk.cpp:1051
void interruptCurrentGoal()
Definition: InfoChunk.cpp:960
int checkWhetherExpectedComponentStateMatchObservation(KBExpectedComponentStateUnit *)
Definition: InfoChunk.cpp:1069
DecisionGoal * getActiveGoalPt()
Definition: InfoChunk.cpp:2131
std::vector< std::shared_ptr< DecisionAction > > action
Definition: InfoChunk.h:141
void addANewGoal(int, int)
Definition: InfoChunk.cpp:240
void interruptCurrentStrategy()
Definition: InfoChunk.cpp:971
void copyInfoChunk(InfoChunk &)
Definition: InfoChunk.cpp:1189
int checkWhetherExpectedSupportSystemStateMatchObservation(KBExpectedSupportSystemStateUnit *)
Definition: InfoChunk.cpp:1087
void pointToTheNewActionObjective(DecisionActionObjective *)
Definition: InfoChunk.cpp:741
void pointToTheNewProcedureStep(DecisionProcedureStep *)
Definition: InfoChunk.cpp:783
std::string doneWithCurrentDiagnosisAndGoForPreviouslyPausedOne()
Definition: InfoChunk.cpp:377
std::vector< std::shared_ptr< DecisionActionPack > > action_pack
Definition: InfoChunk.h:140
void pointToTheNewAction(DecisionAction *)
Definition: InfoChunk.cpp:769
DecisionProcedureStep * getCurrentInstinctiveResponseProcedurePtr()
Definition: InfoChunk.cpp:226
std::vector< std::shared_ptr< ExpectedMentalBelief > > mental_belief
Definition: InfoChunk.h:149
void pauseCurrenStrategyAndAddANewOne(int)
Definition: InfoChunk.cpp:479
void pointToTheNewSubGoal(DecisionSubGoal *)
Definition: InfoChunk.cpp:713
void replaceObjecByPointerForGroupedInfoGoal(InfoChunk &)
Definition: InfoChunk.cpp:1631
int doneWithCurrentSubGoalAndGoForPreviouslyPausedOne()
Definition: InfoChunk.cpp:422
void saveInfoChunkToFile(std::ofstream &)
Definition: InfoChunk.cpp:1361
void addANewStrategy(int, int)
Definition: InfoChunk.cpp:246
void replaceObjecByPointerForGroupedInfoDiagnosis(InfoChunk &)
Definition: InfoChunk.cpp:1733
MentalParameterTrend * checkExistanceOfPerceivedParameterTrend(std::string)
Definition: InfoChunk.cpp:947
int checkWhetherExpectedParameterTrendMatchObservation(KBExpectedParameterTrendUnit *)
Definition: InfoChunk.cpp:1183
int checkWhetherExpectedParameterDifferenceMatchObservation(KBExpectedParameterDifferenceUnit *)
Definition: InfoChunk.cpp:1150
MentalSupportSystemState * checkExistanceOfPerceivedSupportSystemState(std::string)
Definition: InfoChunk.cpp:908
void pointToAvtiveGoalAndStrategy(InfoChunk &)
Definition: InfoChunk.cpp:643
virtual ~InfoChunk()
Definition: InfoChunk.cpp:22
DecisionProcedureStep * checkExistanceOfAnInstinctiveResponseProcedure(std::string, std::string)
Definition: InfoChunk.cpp:860
void replaceObjecByPointerForGroupedInfoMentalBelief(InfoChunk &)
Definition: InfoChunk.cpp:2100
void serialize(Archive &ar, const unsigned int version)
Definition: InfoChunk.h:152
void addANewDiagnosis(std::string, int)
Definition: InfoChunk.cpp:253
void pointToTheNewStrategy(DecisionStrategy *)
Definition: InfoChunk.cpp:699
void pointToTheNewInstinctiveResponseProcedureStep(DecisionProcedureStep *)
Definition: InfoChunk.cpp:808
int getStateOfAProcedureStep(std::string, std::string)
Definition: InfoChunk.cpp:1309
void replaceObjecByPointerForGroupedInfoSupportSystemState(InfoChunk &)
Definition: InfoChunk.cpp:2001
std::vector< std::shared_ptr< DecisionGoal > > goal
Definition: InfoChunk.h:135
std::vector< std::shared_ptr< DecisionDiagnosis > > diagnosis
Definition: InfoChunk.h:138
int getCurrentStrategy()
Definition: InfoChunk.cpp:97
int doneWithCurrentStrategyAndGoForPreviouslyPausedOne()
Definition: InfoChunk.cpp:333
void pointToTheNewDiagnosis(DecisionDiagnosis *)
Definition: InfoChunk.cpp:727
std::vector< std::shared_ptr< DecisionProcedureStep > > instinctive_response_procedure
Definition: InfoChunk.h:143
std::vector< std::shared_ptr< MentalAlarm > > perceived_alarms
Definition: InfoChunk.h:144
int doneWithCurrentGoalAndGoForPreviouslyPausedOne()
Definition: InfoChunk.cpp:289
std::vector< std::shared_ptr< MentalComponentState > > perceived_component_state
Definition: InfoChunk.h:145
std::vector< std::shared_ptr< DecisionProcedureStep > > procedure_step
Definition: InfoChunk.h:142
int ReturnPositionOfOneMentalComponentStateInTheVector(MentalComponentState *)
Definition: InfoChunk.cpp:2189
void replaceObjecByPointerForGroupedInfoActionObjective(InfoChunk &)
Definition: InfoChunk.cpp:1766
double getTotalWeightOfAlarmPerceived()
Definition: InfoChunk.cpp:64
void addNewInstinctiveResponseProcedure(std::string, std::string, int, int, double)
Definition: InfoChunk.cpp:272
void replaceObjecByPointerForGroupedInfoParameterValue(InfoChunk &)
Definition: InfoChunk.cpp:2034
void setStateOfAProcedureStep(std::string, std::string, int)
Definition: InfoChunk.cpp:1286
void replaceObjecByPointerForGroupedInfoAll(InfoChunk &)
Definition: InfoChunk.cpp:1614
void replaceObjecByPointerForGroupedInfoInstinctiveResponseProcedure(InfoChunk &)
Definition: InfoChunk.cpp:1901
bool activateTheDiagnosis(std::string)
Definition: InfoChunk.cpp:515
ExpectedMentalBelief * checkExistanceOfMentalBelief(std::string)
Definition: InfoChunk.cpp:934
void addNewProcedureStep(std::string, std::string, int)
Definition: InfoChunk.cpp:265
void replaceObjecByPointerForGroupedInfoComponentState(InfoChunk &)
Definition: InfoChunk.cpp:1968
void generateErrorMessage(std::string)
Definition: InfoChunk.cpp:2176
int getMentalPriorityOfAProcedureStep(std::string, std::string)
Definition: InfoChunk.cpp:1335
int getTotalPieceOfInfoPerceived()
Definition: InfoChunk.cpp:58
void replaceObjecByPointerForGroupedInfoAction(InfoChunk &)
Definition: InfoChunk.cpp:1835
void interruptCurrentActionPack()
Definition: InfoChunk.cpp:1015
int ReturnPositionOfOneMentalSupportSystemStateInTheVector(MentalSupportSystemState *)
Definition: InfoChunk.cpp:2206
std::vector< std::shared_ptr< DecisionActionObjective > > action_objective
Definition: InfoChunk.h:139
std::string getCurrentInstinctiveResponseProcedureName()
Definition: InfoChunk.cpp:170
void replaceObjecByPointerForGroupedInfoParameterTrend(InfoChunk &)
Definition: InfoChunk.cpp:2067
void retrieveInfoChunkFromFile(std::ifstream &)
Definition: InfoChunk.cpp:1430
void updateActionState(std::string, int)
Definition: InfoChunk.cpp:822