11 #include "legionDataStore/writeStateInstance.h"
12 #include <boost/signals2.hpp>
14 #include <vlutil/vlString.h>
39 virtual const std::map<DtUUID, DtRunwayStateData>&
runways()
const {
throw DtUnimplementedMethod(
"The std::map<DtUUID, DtRunwayStateData> runways() const method is unimplemented"); };
40 virtual void setRunways(
const std::map<DtUUID, DtRunwayStateData>&) {
throw DtUnimplementedMethod(
"The void setRunways(const std::map<DtUUID, DtRunwayStateData>&) method is unimplemented"); };
62 virtual const bool& isLocal()
const override;
63 virtual void setIsLocal(
const bool&)
override;
65 virtual const bool& checkForNameReservation()
const override;
66 virtual void setCheckForNameReservation(
const bool&)
override;
68 virtual const bool& active()
const override;
69 virtual void setActive(
const bool&)
override;
71 virtual const DtString& globalId()
const override;
72 virtual void setGlobalId(
const DtString&)
override;
74 virtual const DtUUID& uuid()
const override;
75 virtual void setUUID(
const DtUUID&)
override;
77 virtual const DtString& airportCode()
const override;
78 virtual void setAirportCode(
const DtString&)
override;
80 virtual unsigned char value(
const DtString&)
const override;
81 virtual void setValue(
const DtString&,
unsigned char)
override;
82 virtual void restoreFromArchive(
const DtString&)
override;
84 virtual unsigned char runwayValue(
const DtString&,
const DtString& runwayName)
const override;
85 virtual void setRunwayValue(
const DtString&,
unsigned char,
const DtString& runwayName)
override;
87 virtual std::vector<DtString> runwaysArchived()
const override;
100 virtual const unsigned long long orbatId()
const override {
return 0; };
101 virtual void setOrbatId(
const unsigned long long&)
override {};
103 virtual void setUserLongLongData(
const unsigned long long&)
override;
104 virtual const UInt64 userLongLongData()
const override;
106 virtual const DtForceType forceType()
const override;
107 virtual void setForceType(
const DtForceType&)
override;
109 virtual const UInt32 appearanceBits()
const override;
110 virtual void setAppearanceBits(
const UInt32&)
override;
112 virtual const DtEntityType
entityType()
const override {
return DtEntityType(objectType()); };
113 virtual const DtEntityType objectType()
const override;
114 virtual void setEntityType(
const DtEntityType& t)
override;
116 virtual const DtEntityIdentifier& entityId()
const override;
117 virtual void setEntityId(
const DtEntityIdentifier&)
override;
119 virtual const DtSimulationAddress simEngineAddress()
const override;
122 virtual void removeRunway(
const DtUUID&)
override;
129 virtual const std::map<DtUUID, DtRunwayStateData>& runways()
const override;
130 virtual void setRunways(
const std::map<DtUUID, DtRunwayStateData>&)
override;
132 virtual void restoreRunwaysFromArchive(
const std::vector<DtString>&)
override;
148 virtual const bool& isLocal()
const override;
149 virtual const bool& checkForNameReservation()
const override;
150 virtual const bool& active()
const override;
151 virtual const DtString& globalId()
const override;
152 virtual const DtUUID& uuid()
const override;
153 virtual const DtString& airportCode()
const override;
156 virtual const UInt64 userLongLongData()
const override;
158 virtual const UInt32 appearanceBits()
const override;
159 virtual const DtEntityType
entityType()
const override {
return DtEntityType(objectType()); };
160 virtual const DtEntityType objectType()
const override;
161 virtual const DtEntityIdentifier& entityId()
const override;
162 virtual const DtSimulationAddress simEngineAddress()
const override;
163 virtual std::vector<DtString> runwaysArchived()
const override;
164 virtual unsigned char value(
const DtString&)
const override;
165 virtual unsigned char runwayValue(
const DtString&,
const DtString& runwayName)
const override;
166 virtual const unsigned long long orbatId()
const override {
return 0; };
168 virtual const DtForceType forceType()
const override;
172 virtual const std::map<DtUUID, DtRunwayStateData>& runways()
const override;
200 if (myNextFrameState.isWritable())
202 myCurrentFrameState.advanceFrame(myNextFrameState.frameState());
205 myCurrentFrameState.emitComponentUpdated();
210 myCurrentFrameState.updateStateData(sd);
211 myNextFrameState.updateStateData(sd);
217 myCurrentFrameState.aboutToBeDeleted();
218 myNextFrameState.aboutToBeDeleted();
221 virtual void addAdditionalStateComponents()
override;
225 virtual void convertToRemote()
override;
228 virtual void convertToLocal()
override;
DtAerodromeStateData myData
Definition: aerodromeStateComponent.h:135
UUID is a unique ID wrapper class.
Definition: uuid.h:59
bool isDoubleBuffered()
Definition: aerodromeStateComponent.h:193
virtual const unsigned long long orbatId() const override
Aerodromes cannot be in orbat.
Definition: aerodromeStateComponent.h:100
DtStateComponentCreator< DtAerodromeStateComponentImplementation > DtAerodromeStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: aerodromeStateComponent.h:238
Definition: stateComponent.h:67
Definition: stateDataTypes.h:23
virtual const DtRunwayLightStateData & runwayState(const std::string &) const
Definition: aerodromeStateComponent.h:38
virtual const unsigned long long orbatId() const override
Definition: aerodromeStateComponent.h:166
3) Define the current frame class. This will be used for read access.
Definition: aerodromeStateComponent.h:139
virtual DtRunwayStateData & runway(const std::string &)
Definition: aerodromeStateComponent.h:35
unsigned int UInt32
Definition: stateDataTypes.h:18
Definition: aerodromeStateData.h:498
virtual const DtString & markingText() const override
Definition: aerodromeStateComponent.h:89
Definition: stateComponent.h:269
The DtSimulatedObjectStateComponent is an interface that all main components (those that are consider...
Definition: simulatedObjectStateComponent.h:21
virtual const DtAerodromeStateData & frameState() const override
Current frame state only can access current frame buffers. This ensures thread safety.
Definition: aerodromeStateComponent.h:146
unsigned long long UInt64
Definition: stateDataTypes.h:17
#define UNDEFINED_RETURNREF_ACCESSOR(ReturnType, Member)
Definition: doubleBufferedDataStorage.h:34
DtAerodromeStateData & frameState()
Definition: aerodromeStateComponent.h:60
2) Define the next frame class. This will be used for write access.
Definition: aerodromeStateComponent.h:52
virtual void restoreFromArchive(const DtString &)
Definition: aerodromeStateComponent.h:47
virtual DtFrameStateInterface * nextFrameState() override
Definition: aerodromeStateComponent.h:195
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
virtual void restoreRunwaysFromArchive(const std::vector< DtString > &)
Definition: aerodromeStateComponent.h:42
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:231
virtual const DtEntityType entityType() const override
Definition: aerodromeStateComponent.h:159
virtual const std::map< DtUUID, DtRunwayStateData > & runways() const
Definition: aerodromeStateComponent.h:39
virtual const DtRunwayStateData & runway(const std::string &) const
Definition: aerodromeStateComponent.h:37
virtual const DtAerodromeStateData & frameState() const override
Next frame access write access. Ensure this is only used in a single thread (i.e.a controller thread)...
Definition: aerodromeStateComponent.h:59
virtual std::vector< DtString > runwaysArchived() const
Definition: aerodromeStateComponent.h:41
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:384
virtual const DtEntityType entityType() const override
Definition: aerodromeStateComponent.h:112
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: aerodromeStateComponent.h:20
Definition: aerodromeStateData.h:17
virtual void aboutToBeDeleted()
Legion::WriteStateInstance myWriteStateInstance
Definition: aerodromeStateComponent.h:233
virtual void setMarkingText(const DtString &t) override
Definition: aerodromeStateComponent.h:94
virtual void setValue(const DtString &, unsigned char)
Definition: aerodromeStateComponent.h:46
virtual void updateDataStorage() override
Implement to update data storage. Called from advanceFrame.
Definition: aerodromeStateComponent.h:198
virtual DtRunwayStateData & runway(const DtUUID &)
Definition: aerodromeStateComponent.h:34
DtAerodromeStateData myData
Definition: aerodromeStateComponent.h:182
virtual unsigned char runwayValue(const DtString &, const DtString &runwayName) const
Definition: aerodromeStateComponent.h:43
#define UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:57
virtual const DtRunwayStateData & runway(const DtUUID &) const
Definition: aerodromeStateComponent.h:36
virtual const DtString & markingText() const override
Definition: aerodromeStateComponent.h:154
DtAerodromeStateComponentCurrentFrame myCurrentFrameState
Definition: aerodromeStateComponent.h:231
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: aerodromeStateComponent.h:187
DtAerodromeStateComponentNextFrame myNextFrameState
Definition: aerodromeStateComponent.h:232
virtual unsigned char value(const DtString &) const
Definition: aerodromeStateComponent.h:45
virtual Legion::WriteStateInstance writeStateInstance() override
Definition: aerodromeStateComponent.h:222
virtual void updateStateData(DtStateData *sd) override
Implement to update data storage to the new state data.
Definition: aerodromeStateComponent.h:208
virtual const DtFrameStateInterface * currentFrameState() const override
Definition: aerodromeStateComponent.h:194
#define DT_DLL_vrfStateData
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfStateDataDefines.h:26
virtual void aboutToBeDeleted() override
Definition: aerodromeStateComponent.h:214
virtual void setRunwayValue(const DtString &, unsigned char, const DtString &runwayName)
Definition: aerodromeStateComponent.h:44
virtual void setRunways(const std::map< DtUUID, DtRunwayStateData > &)
Definition: aerodromeStateComponent.h:40
virtual void setOrbatId(const unsigned long long &) override
Definition: aerodromeStateComponent.h:101
virtual const DtFrameStateInterface * nextFrameState() const override
Definition: aerodromeStateComponent.h:196
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:294
virtual void removeRunway(const DtUUID &)
Definition: aerodromeStateComponent.h:33
void advanceFrame(const DtAerodromeStateData &data)
Definition: aerodromeStateComponent.h:176
Definition: aerodromeStateData.h:355