WSF
WsfSimulationObserver.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFSIMULATIONOBSERVER_HPP
13#define WSFSIMULATIONOBSERVER_HPP
14
15#include "wsf_export.h"
16
17#include <string>
18
19#include "UtCallback.hpp"
20class WsfMessage;
21class WsfPlatform;
22class WsfSimulation;
23
24// Note: The following only exists in this file to prevent redundancy
25// in the compiled DOxygen code documentation.
59namespace WsfObserver
60{
62class InitializeCallback : public UtCallbackListN<bool()>
63{
64public:
65 bool Callback()
66 {
67 bool ok = true;
68 for (auto it = mCallbackList.begin(); it != mCallbackList.end();)
69 {
70 if (!static_cast<CallbackType*>(*(it++))->operator()())
71 {
72 ok = false;
73 }
74 }
75 return ok;
76 }
77 void Clear() { mCallbackList.clear(); }
78};
79
80using AdvanceTimeCallback = UtCallbackListN<void(double)>;
81using ApplicationExitCallback = UtCallbackListN<void()>;
82using ApplicationInitializeCallback = UtCallbackListN<void()>;
83using FrameCompleteCallback = UtCallbackListN<void(double)>;
84using FramePlatformsUpdatedCallback = UtCallbackListN<void(double)>;
85using FrameStartingCallback = UtCallbackListN<void(double)>;
86using RequestTimeAdvanceCallback = UtCallbackListN<void(double, double, double)>;
87using SimulationClockRateChangeCallback = UtCallbackListN<void(double)>;
88using SimulationInitializingCallback = UtCallbackListN<void()>;
89using SimulationPendingStartCallback = UtCallbackListN<void()>;
90using SimulationStartingCallback = UtCallbackListN<void()>;
91using SimulationPausingCallback = UtCallbackListN<void()>;
92using SimulationResumingCallback = UtCallbackListN<void()>;
93using SimulationCompleteCallback = UtCallbackListN<void(double)>;
94using SimulationTimeBehindCallback = UtCallbackListN<void(double)>;
95
112} // namespace WsfObserver
113
188
189#endif
bool ok
Definition WsfScriptWeaponClass.cpp:211
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
A special callback list used in WsfObserver::Initialize.
Definition WsfSimulationObserver.hpp:63
void Clear()
Definition WsfSimulationObserver.hpp:77
bool Callback()
Definition WsfSimulationObserver.hpp:65
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Observer definitions for cyber events.
Definition WsfAdvancedBehaviorObserver.hpp:22
WSF_EXPORT SimulationPausingCallback & SimulationPausing(const WsfSimulation *aSimulationPtr)
UtCallbackListN< void()> SimulationStartingCallback
Definition WsfSimulationObserver.hpp:90
UtCallbackListN< void()> ApplicationInitializeCallback
Definition WsfSimulationObserver.hpp:82
UtCallbackListN< void(double)> SimulationTimeBehindCallback
Definition WsfSimulationObserver.hpp:94
UtCallbackListN< void(double)> FrameCompleteCallback
Definition WsfSimulationObserver.hpp:83
UtCallbackListN< void(double)> SimulationClockRateChangeCallback
Definition WsfSimulationObserver.hpp:87
WSF_EXPORT SimulationCompleteCallback & SimulationComplete(const WsfSimulation *aSimulationPtr)
WSF_EXPORT InitializeCallback & Initialize(const WsfSimulation *aSimulationPtr)
WSF_EXPORT FrameCompleteCallback & FrameComplete(const WsfSimulation *aSimulationPtr)
WSF_EXPORT AdvanceTimeCallback & AdvanceTime(const WsfSimulation *aSimulationPtr)
WSF_EXPORT SimulationStartingCallback & SimulationStarting(const WsfSimulation *aSimulationPtr)
UtCallbackListN< void(double)> FramePlatformsUpdatedCallback
Definition WsfSimulationObserver.hpp:84
UtCallbackListN< void(double)> FrameStartingCallback
Definition WsfSimulationObserver.hpp:85
UtCallbackListN< void(double, double, double)> RequestTimeAdvanceCallback
Definition WsfSimulationObserver.hpp:86
WSF_EXPORT SimulationClockRateChangeCallback & SimulationClockRateChange(const WsfSimulation *aSimulationPtr)
UtCallbackListN< void()> SimulationInitializingCallback
Definition WsfSimulationObserver.hpp:88
WSF_EXPORT SimulationPendingStartCallback & SimulationPendingStart(const WsfSimulation *aSimulationPtr)
UtCallbackListN< void()> ApplicationExitCallback
Definition WsfSimulationObserver.hpp:81
WSF_EXPORT ApplicationInitializeCallback & ApplicationInitialize(const WsfSimulation *aSimulationPtr)
UtCallbackListN< void(double)> AdvanceTimeCallback
Definition WsfSimulationObserver.hpp:80
WSF_EXPORT ApplicationExitCallback & ApplicationExit(const WsfSimulation *aSimulationPtr)
UtCallbackListN< void()> SimulationResumingCallback
Definition WsfSimulationObserver.hpp:92
WSF_EXPORT SimulationResumingCallback & SimulationResuming(const WsfSimulation *aSimulationPtr)
WSF_EXPORT FramePlatformsUpdatedCallback & FramePlatformsUpdated(const WsfSimulation *aSimulationPtr)
WSF_EXPORT RequestTimeAdvanceCallback & RequestTimeAdvance(const WsfSimulation *aSimulationPtr)
WSF_EXPORT SimulationTimeBehindCallback & SimulationTimeBehind(const WsfSimulation *aSimulationPtr)
UtCallbackListN< void()> SimulationPausingCallback
Definition WsfSimulationObserver.hpp:91
UtCallbackListN< void(double)> SimulationCompleteCallback
Definition WsfSimulationObserver.hpp:93
WSF_EXPORT SimulationInitializingCallback & SimulationInitializing(const WsfSimulation *aSimulationPtr)
WSF_EXPORT FrameStartingCallback & FrameStarting(const WsfSimulation *aSimulationPtr)
UtCallbackListN< void()> SimulationPendingStartCallback
Definition WsfSimulationObserver.hpp:89
Definition WsfSimulationObserver.hpp:117
WsfObserver::SimulationResumingCallback SimulationResuming
The simulation is starting execution.
Definition WsfSimulationObserver.hpp:173
WsfObserver::FrameStartingCallback FrameStarting
Definition WsfSimulationObserver.hpp:138
WsfObserver::AdvanceTimeCallback AdvanceTime
Definition WsfSimulationObserver.hpp:120
WsfObserver::SimulationPausingCallback SimulationPausing
The simulation is starting execution.
Definition WsfSimulationObserver.hpp:170
WsfObserver::SimulationCompleteCallback SimulationComplete
Definition WsfSimulationObserver.hpp:182
WsfObserver::SimulationPendingStartCallback SimulationPendingStart
The simulation is pending start (i.e. simulation initialization is complete).
Definition WsfSimulationObserver.hpp:164
WsfObserver::FramePlatformsUpdatedCallback FramePlatformsUpdated
Definition WsfSimulationObserver.hpp:134
WsfObserver::SimulationInitializingCallback SimulationInitializing
The simulation is initializing.
Definition WsfSimulationObserver.hpp:161
WsfObserver::ApplicationExitCallback ApplicationExit
The application is exiting normally. Subscribers will be called in FILO order.
Definition WsfSimulationObserver.hpp:123
WsfObserver::FrameCompleteCallback FrameComplete
Definition WsfSimulationObserver.hpp:130
WsfObserver::SimulationStartingCallback SimulationStarting
The simulation is starting execution.
Definition WsfSimulationObserver.hpp:167
WsfObserver::InitializeCallback Initialize
Definition WsfSimulationObserver.hpp:149
WsfObserver::ApplicationInitializeCallback ApplicationInitialize
The application is initializing.
Definition WsfSimulationObserver.hpp:126
WsfObserver::SimulationTimeBehindCallback SimulationTimeBehind
Definition WsfSimulationObserver.hpp:186
WsfObserver::SimulationClockRateChangeCallback SimulationClockRateChange
The simulation is starting execution.
Definition WsfSimulationObserver.hpp:158
WsfObserver::RequestTimeAdvanceCallback RequestTimeAdvance
Definition WsfSimulationObserver.hpp:155
Copyrights Multiple, All Rights Reserved