← Documentation
ADS-IDAC Engine 5.0.0
SymptomInvestigator.h
Go to the documentation of this file.
1#pragma once
2
3// SymptomInvestigator.h: interface for the SymptomInvestigator class.
4//
6#include <memory>
7#include "IDElement.h"
8#include "EventSymptomUnit.h"
9#include "Investigator.h"
10#include "KnowledgeElement.h"
11#include "SymptomCase.h"
12
14public IDElement
15{
16public:
19 std::string m_opposite_KE_ID;
23 std::string m_ID_DI;
26 void PrintMessage(std::string str);
31 void MoveCaseFromCandidateTo(SymptomCase * _case_pt, std::vector<std::unique_ptr<SymptomCase>> &_target);
36 void ErrorMessage(std::string);
38
43
47
48 std::string m_ID_lable;
49 std::string m_ID_esu;
50 std::string m_ID_KE;
51
52 std::vector<Investigator *> m_ongoing_invest_list;
53 std::vector<InvestigatorLink *> m_ongoing_invest_link_list;
54
55 std::vector<std::string> m_ID_ongoing_invest_list;
56 std::vector<std::string> m_ID_ongoing_invest_link_list;
57
58 std::vector<std::unique_ptr<SymptomCase>> m_candidate_case_list; //contain all the symptom cases
59 std::vector<std::unique_ptr<SymptomCase>> m_confirmed_case_list; //there is a possible path from the event to the symptom
60 std::vector<std::unique_ptr<SymptomCase>> m_rejected_case_list; //the symptom doesn't happen at all
61 std::vector<std::unique_ptr<SymptomCase>> m_inconsistant_case_list;//the symptom happen, but path is blocked in the middel
62 std::vector<std::unique_ptr<SymptomCase>> m_exception_case_list;//One or more permission KE is not satisfied and block the path
63 std::vector<std::unique_ptr<SymptomCase>> m_partial_consistant_case_list;//The path is partially satisfied from the event, but not reached to the symptom
64 std::vector<std::unique_ptr<SymptomCase>> m_discarded_case_list;
65 std::vector<std::unique_ptr<SymptomCase>> m_voided_case_list;//symptom happened, but there is another strong competing explaination
66
68 virtual ~SymptomInvestigator();
69
70};
void RemoveADeterminedCaseFromCandiateList(SymptomCase *_case_pt)
std::vector< std::unique_ptr< SymptomCase > > m_voided_case_list
std::vector< std::unique_ptr< SymptomCase > > m_partial_consistant_case_list
void PrintMessage(std::string str)
void CopySymptomInvestigatorInfoFromAnother(SymptomInvestigator *)
EventSymptomUnit * m_event_symptom_pt
void TrackOneInvestigationCase(SymptomCase *_case_pt)
std::vector< Investigator * > m_ongoing_invest_list
KnowledgeElement * m_symptom_KE_pt
std::vector< InvestigatorLink * > m_ongoing_invest_link_list
std::vector< std::unique_ptr< SymptomCase > > m_candidate_case_list
std::vector< std::unique_ptr< SymptomCase > > m_exception_case_list
std::vector< std::unique_ptr< SymptomCase > > m_inconsistant_case_list
void MoveCaseFromCandidateTo(SymptomCase *_case_pt, std::vector< std::unique_ptr< SymptomCase > > &_target)
std::vector< std::string > m_ID_ongoing_invest_link_list
KnowledgeElement * m_opposite_KE_pt
void ErrorMessage(std::string)
std::vector< std::unique_ptr< SymptomCase > > m_rejected_case_list
std::vector< std::unique_ptr< SymptomCase > > m_confirmed_case_list
void BuildConnectionsForThisSymptomInvestigator(void *)
KnowledgeUnit * CheckAKnowledgeUnitInTheList(KnowledgeUnit *_KU_pt)
std::vector< std::unique_ptr< SymptomCase > > m_discarded_case_list
void InitiallyCompareAnInvestigationTraceWithThePrototype(SymptomCase *)
SymptomCase * FindASymptomCaseByInvestigator(Investigator *_invest_pt)
std::vector< std::string > m_ID_ongoing_invest_list