29#ifndef WSF_BM_MOE_LOGGER_HPP
30#define WSF_BM_MOE_LOGGER_HPP
32#include <UtMemory.hpp>
35#include <iadsLib/moeLoggingInterface.hpp>
41#include <UtPlugin.hpp>
42#include <UtCallback.hpp>
43#include "UtScriptDataPack.hpp"
44#include "UtScript.hpp"
55 class evaluationAssignment;
64 UtCallbackListN<void(
const double,
const il::evaluationAssignment*,
const std::string)>
OnAssignment;
65 UtCallbackListN<void(
const double,
const il::assignmentACKMessage*,
const il::evaluationAssignment*)>
OnAssignmentStatus;
66 UtCallbackListN<void(
const double,
const il::idRecord*,
const il::evaluationAssignment*,
const std::string&)>
OnAssignmentCancel;
67 UtCallbackListN<void(
const double,
const il::idRecord*,
const il::assignmentMessage*,
const il::trackRecord*,
const std::string&)>
OnCANTCOAssignment;
68 UtCallbackListN<void(
const double,
const il::idRecord*,
const il::assessmentRecord*)>
OnAllocate;
70 UtCallbackListN<void(
const double,
const il::assetRecord*,
const il::trackRecord*,
const il::assignmentMessage*,
const il::sensorRecord*)>
OnSensorCue;
71 UtCallbackListN<void(
const double,
const il::assetRecord*,
const il::trackRecord*,
const il::assignmentMessage*,
const il::sensorRecord*)>
OnSensorDropCue;
72 UtCallbackListN<void(
const double,
const il::trackRecord*,
const il::sensorRecord*)>
OnSensorTracking;
74 UtCallbackListN<void(
const double,
const std::string,
const il::trackRecord*,
const il::assetRecord*,
const double,
const double)>
OnAIAddBehavior;
75 UtCallbackListN<void(
const double,
const il::trackRecord*,
const il::assetRecord*,
const std::string&,
const double,
const double,
const double)>
OnAITakeAction;
76 UtCallbackListN<void(
const double,
const il::assetRecord*,
const std::string&,
const std::string&,
const double)>
OnAIEgress;
78 void Assignment(
const double curr_time,
const il::evaluationAssignment* assignment,
const std::string assignment_flag)
override;
79 void AssignmentStatus(
const double curr_time,
const il::assignmentACKMessage* status,
const il::evaluationAssignment* related_assignment)
override;
80 void AssignmentCancel(
const double curr_time,
const il::idRecord* cancelling_unit,
const il::evaluationAssignment* active_assignment,
const std::string& cancel_reason)
override;
81 void CANTCOAssignment(
const double curr_time,
const il::idRecord* responding_unit,
const il::assignmentMessage* assignment,
const il::trackRecord* opt_track,
const std::string& reason)
override;
82 void WILCOAssignment(
const double curr_time,
const il::assignmentACKMessage* status,
const il::evaluationAssignment* related_assignment)
override;
83 void HAVCOAssignment(
const double curr_time,
const il::assignmentACKMessage* status,
const il::evaluationAssignment* related_assignment)
override;
84 void Allocate(
const double curr_time,
const il::idRecord* allocating_unit,
const il::assessmentRecord* assessment)
override;
86 void SensorCue(
const double curr_time,
const il::assetRecord* curr_unit,
const il::trackRecord* master_track,
const il::assignmentMessage* assignment,
const il::sensorRecord* sensor_to_assign)
override;
87 void SensorDropCue(
const double curr_time,
const il::assetRecord* curr_unit,
const il::trackRecord* master_track,
const il::assignmentMessage* assignment,
const il::sensorRecord* sensor_to_assign)
override;
88 void SensorTracking(
const double curr_time,
const il::trackRecord* master_track,
const il::sensorRecord* assigned_sensor)
override;
90 void AIAddBehavior(
const double curr_time,
const std::string behavior,
const il::trackRecord* target,
const il::assetRecord* ai_asset,
const double range,
const double range_to_zone)
override;
91 void AITakeAction(
const double curr_time,
const il::trackRecord* track,
const il::assetRecord* ai_asset,
const std::string& action_type,
const double end_time_s,
const double range,
const double range_to_zone)
override;
92 void AIEgress(
const double curr_time,
const il::assetRecord* ai_asset,
const std::string& egress_method,
const std::string& corridor_name,
const double speed)
override;
116 void SetLogger(std::unique_ptr<il::moeLoggingInterface> aMoeLogger);
117 il::moeLoggingInterface*
GetLogger()
const;
122 std::unique_ptr<il::moeLoggingInterface> mMoeLogger;
IADSC2SimulationExtension()
Definition WsfBMMOELogger.cpp:657
static IADSC2SimulationExtension * Find(const WsfSimulation &aSimulation)
Definition WsfBMMOELogger.cpp:680
void SetLogger(std::unique_ptr< il::moeLoggingInterface > aMoeLogger)
Definition WsfBMMOELogger.cpp:669
void AddedToSimulation() override
Definition WsfBMMOELogger.cpp:663
il::moeLoggingInterface * GetLogger() const
Definition WsfBMMOELogger.cpp:674
WsfBMCSV_EventOutput writes BM specific events to the event output logfile.
Definition WsfBMCSV_EventOutput.hpp:56
WsfBMEventOutput writes BM specific events to the event output logfile.
Definition WsfBMEventOutput.hpp:49
std::shared_ptr< WsfBMCSV_EventOutput > mCSV_EventOutput
Definition WsfBMMOELogger.hpp:103
WsfSimulation * mSimulationPtr
Definition WsfBMMOELogger.hpp:100
UtCallbackListN< void(const double, const il::idRecord *, const il::assessmentRecord *)> OnAllocate
Definition WsfBMMOELogger.hpp:68
void AssignmentCancel(const double curr_time, const il::idRecord *cancelling_unit, const il::evaluationAssignment *active_assignment, const std::string &cancel_reason) override
Definition WsfBMMOELogger.cpp:225
void AssignmentStatus(const double curr_time, const il::assignmentACKMessage *status, const il::evaluationAssignment *related_assignment) override
Definition WsfBMMOELogger.cpp:122
WsfBMHEFIRMOELogger(WsfBMHEFIRMOELogger const &)=default
void AIEgress(const double curr_time, const il::assetRecord *ai_asset, const std::string &egress_method, const std::string &corridor_name, const double speed) override
Definition WsfBMMOELogger.cpp:459
void SensorTracking(const double curr_time, const il::trackRecord *master_track, const il::sensorRecord *assigned_sensor) override
Definition WsfBMMOELogger.cpp:364
UtCallbackListN< void(const double, const il::trackRecord *, const il::sensorRecord *)> OnSensorTracking
Definition WsfBMMOELogger.hpp:72
WsfBMHEFIRMOELogger & operator=(WsfBMHEFIRMOELogger const &)=delete
void CANTCOAssignment(const double curr_time, const il::idRecord *responding_unit, const il::assignmentMessage *assignment, const il::trackRecord *opt_track, const std::string &reason) override
Definition WsfBMMOELogger.cpp:255
UtCallbackListN< void(const double, const il::assetRecord *, const std::string &, const std::string &, const double)> OnAIEgress
Definition WsfBMMOELogger.hpp:76
void Assignment(const double curr_time, const il::evaluationAssignment *assignment, const std::string assignment_flag) override
Definition WsfBMMOELogger.cpp:79
void SensorCue(const double curr_time, const il::assetRecord *curr_unit, const il::trackRecord *master_track, const il::assignmentMessage *assignment, const il::sensorRecord *sensor_to_assign) override
Definition WsfBMMOELogger.cpp:324
UtCallbackListN< void(const double, const il::trackRecord *, const il::assetRecord *, const std::string &, const double, const double, const double)> OnAITakeAction
Definition WsfBMMOELogger.hpp:75
void RegisterScriptObservers(WsfSimulation &aSimulation)
Add a new events to the script observer that maps our new WsfBMHEFIRMOELogger to a script function si...
Definition WsfBMMOELogger.cpp:478
void HAVCOAssignment(const double curr_time, const il::assignmentACKMessage *status, const il::evaluationAssignment *related_assignment) override
Definition WsfBMMOELogger.cpp:290
UtCallbackListN< void(const double, const il::idRecord *, const il::assignmentMessage *, const il::trackRecord *, const std::string &)> OnCANTCOAssignment
Definition WsfBMMOELogger.hpp:67
UtCallbackListN< void(const double, const il::idRecord *, const il::evaluationAssignment *, const std::string &)> OnAssignmentCancel
Definition WsfBMMOELogger.hpp:66
UtCallbackListN< void(const double, const il::assetRecord *, const il::trackRecord *, const il::assignmentMessage *, const il::sensorRecord *)> OnSensorCue
Definition WsfBMMOELogger.hpp:70
void AITakeAction(const double curr_time, const il::trackRecord *track, const il::assetRecord *ai_asset, const std::string &action_type, const double end_time_s, const double range, const double range_to_zone) override
Definition WsfBMMOELogger.cpp:427
void WILCOAssignment(const double curr_time, const il::assignmentACKMessage *status, const il::evaluationAssignment *related_assignment) override
Definition WsfBMMOELogger.cpp:285
~WsfBMHEFIRMOELogger() override=default
WsfBMHEFIRMOELogger(WsfSimulation *aSimulation)
Definition WsfBMMOELogger.cpp:58
UtCallbackListN< void(const double, const std::string, const il::trackRecord *, const il::assetRecord *, const double, const double)> OnAIAddBehavior
Definition WsfBMMOELogger.hpp:74
UtCallbackListN< void(const double, const il::evaluationAssignment *, const std::string)> OnAssignment
Definition WsfBMMOELogger.hpp:64
UtCallbackListN< void(const double, const il::assetRecord *, const il::trackRecord *, const il::assignmentMessage *, const il::sensorRecord *)> OnSensorDropCue
Definition WsfBMMOELogger.hpp:71
void Allocate(const double curr_time, const il::idRecord *allocating_unit, const il::assessmentRecord *assessment) override
Definition WsfBMMOELogger.cpp:295
std::shared_ptr< WsfBMEventOutput > mEventOutput
Definition WsfBMMOELogger.hpp:102
void SensorDropCue(const double curr_time, const il::assetRecord *curr_unit, const il::trackRecord *master_track, const il::assignmentMessage *assignment, const il::sensorRecord *sensor_to_assign) override
Definition WsfBMMOELogger.cpp:344
UtCallbackListN< void(const double, const il::assignmentACKMessage *, const il::evaluationAssignment *)> OnAssignmentStatus
Definition WsfBMMOELogger.hpp:65
void AIAddBehavior(const double curr_time, const std::string behavior, const il::trackRecord *target, const il::assetRecord *ai_asset, const double range, const double range_to_zone) override
Definition WsfBMMOELogger.cpp:396
WsfSimulationExtension()
Definition WsfSimulationExtension.cpp:23
friend class WsfSimulation
Definition WsfSimulationExtension.hpp:43
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfAssetManager.hpp:34