WSF
WsfXIO_SimTimeService.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 WSFXIO_SIMTIMESERVICE_HPP
13#define WSFXIO_SIMTIMESERVICE_HPP
14
15#include "wsf_export.h"
16
17class UtWallClock;
18class WsfClockSource;
19class WsfSimulation;
22#include "WsfEvent.hpp"
26
29{
30 typedef WsfXIO_Service BaseType;
31
32public:
34 ~WsfXIO_SimTimeService() override;
35
36 bool UpdateRequestInterval(double aSimTime, WsfXIO_SubscriptionId aSubscriptionId);
37
38protected:
39 void HandlePause();
40 void HandleResume();
41 void HandleClockRateChange(double aClockRate);
42
46
47 void SubscriptionCancelled(WsfXIO_Subscription* aSubscriptionPtr) override;
48
49 class UpdateEvent : public WsfEvent
50 {
51 public:
53 WsfXIO_SubscriptionId aSubscriptionId,
54 double aInterval,
55 bool aIsAdjusted,
56 bool aIsWallClockEvent);
57
58 UpdateEvent(const UpdateEvent& aSrc);
59
60 void Disable() { mIsActive = false; }
61 EventDisposition Execute() override;
62
66 double mInterval;
69 double mRate;
70 };
71
77
78 std::vector<SubscriptionData> mSubscriptionData;
80};
81#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
std::pair< int, int > WsfXIO_SubscriptionId
Definition WsfXIO_Subscription.hpp:26
Maintain the current simulation clock.
Definition WsfClockSource.hpp:22
WsfEvent()=default
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfXIO_Connection.hpp:37
Definition WsfXIO_Interface.hpp:54
Definition WsfXIO_PacketRegistry.hpp:916
WsfXIO_Service(WsfXIO_Interface *aInterfacePtr)
Definition WsfXIO_Service.cpp:21
virtual void SubscriptionCancelled(WsfXIO_Subscription *aSubscriptionPtr)
Definition WsfXIO_Service.cpp:134
Definition WsfXIO_PacketRegistry.hpp:944
SimulationState
Definition WsfXIO_PacketRegistry.hpp:953
Definition WsfXIO_SimTimeService.hpp:50
void Disable()
Definition WsfXIO_SimTimeService.hpp:60
bool mIsAdjusted
Definition WsfXIO_SimTimeService.hpp:64
WsfXIO_SubscriptionId mSubscriptionId
Definition WsfXIO_SimTimeService.hpp:68
double mRate
Definition WsfXIO_SimTimeService.hpp:69
bool mIsActive
Definition WsfXIO_SimTimeService.hpp:63
WsfXIO_SimTimeService * mServicePtr
Definition WsfXIO_SimTimeService.hpp:67
double mInterval
Definition WsfXIO_SimTimeService.hpp:66
bool mIsWallClockEvent
Definition WsfXIO_SimTimeService.hpp:65
UpdateEvent(WsfXIO_SimTimeService *aServicePtr, WsfXIO_SubscriptionId aSubscriptionId, double aInterval, bool aIsAdjusted, bool aIsWallClockEvent)
Definition WsfXIO_SimTimeService.cpp:159
WsfXIO_SimTimeService(WsfXIO_Simulation &aXIO_Simulation)
Definition WsfXIO_SimTimeService.cpp:25
bool UpdateRequestInterval(double aSimTime, WsfXIO_SubscriptionId aSubscriptionId)
Definition WsfXIO_SimTimeService.cpp:68
void SetTimeData(WsfXIO_SimTimePkt &aPkt)
Definition WsfXIO_SimTimeService.cpp:86
void SendTimeStateToAll(WsfXIO_SimTimePkt::SimulationState aState)
Definition WsfXIO_SimTimeService.cpp:95
void HandleResume()
Definition WsfXIO_SimTimeService.cpp:113
WsfSimulation & mSimulation
Definition WsfXIO_SimTimeService.hpp:79
std::vector< SubscriptionData > mSubscriptionData
Definition WsfXIO_SimTimeService.hpp:78
void HandleRequest(WsfXIO_RequestSimTimePkt &aPkt)
Definition WsfXIO_SimTimeService.cpp:38
void HandleClockRateChange(double aClockRate)
Definition WsfXIO_SimTimeService.cpp:131
void HandlePause()
Definition WsfXIO_SimTimeService.cpp:108
Definition WsfXIO_Simulation.hpp:49
A WsfXIO_Subscription wraps information about a remote request for information.
Definition WsfXIO_Subscription.hpp:30
Definition WsfXIO_SimTimeService.hpp:73
WsfXIO_SubscriptionId mSubscriptionId
Definition WsfXIO_SimTimeService.hpp:74
UpdateEvent * mEventPtr
Definition WsfXIO_SimTimeService.hpp:75
Copyrights Multiple, All Rights Reserved