VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtAerodromeStatusManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
15 #include <vrvCore/DtUniqueID.h>
16 
18 
19 #include <unordered_map>
20 
21 namespace makVrv
22 {
23  class DtBaseConnection;
24  class DtRunwayLightingUpdaterAgent;
25  class DtRunwayStatusUpdaterAgent;
26  class DtAerodromeLightingUpdaterAgent;
27 
28  enum class DtRunwayLightsEnum : unsigned int;
29 
31  {
37  };
38 
58  {
59  public:
62 
64  virtual ~DtAerodromeStatusManager();
65 
67  DtAerodromeStatusManager() = delete;
68 
71 
73  DtAerodromeStatusManager& operator=(const DtAerodromeStatusManager&) = delete;
74 
75  public:
77 
79  virtual void addAerodrome(DtUniqueID uniqueId, const std::string& aerodromeName);
80 
82  virtual void removeAerodrome(DtUniqueID aerodromeId);
83 
86  virtual DtAerodromeStatusData* findAerodromeData(DtUniqueID aerodromeId);
87 
90  virtual DtAerodromeStatusData aerodromeData(DtUniqueID aerodromeId) const;
91 
94  virtual DtAerodromeStatusData aerodromeData(const std::string& aerodromeName) const;
95 
98  virtual DtAerodromeStatusData* findAerodromeData(const std::string& aerodromeName);
99 
101 
103  virtual void addRunway(DtUniqueID runwayId, DtUniqueID aerodromeId);
105 
107  virtual void removeRunway(DtUniqueID runwayId);
108 
110  virtual void setPhysicalRunwayName(DtUniqueID runwayId, const std::string& name);
111 
113  virtual std::string physicalRunwayName(DtUniqueID runwayId) const;
114 
116  virtual void setLogicalRunwayName(DtUniqueID runwayId, unsigned int logicalRunwayIndex, const std::string& name);
117 
119  virtual std::string logicalRunwayName(DtUniqueID runwayId, unsigned int logicalRunwayIndex);
120 
122  virtual unsigned int logicalRunwayIndex(DtUniqueID runwayId, const std::string& runwayName) const;
123 
125  // Set / get the intensity for a runway's lights specified by the light type
126  virtual void setRunwayLightIntensity(DtUniqueID runwayId, unsigned int logicalRunwayIndex, DtRunwayLightsEnum lightType, float intensity);
127  virtual float runwayLightIntensity(DtUniqueID runwayId, unsigned int logicalRunwayIndex, DtRunwayLightsEnum lightType) const;
129 
131  // Set / get the active state for a logical runway
132  virtual void setRunwayIsActive(DtUniqueID runwayId, unsigned int logicalRunwayIndex, bool isActive);
133  virtual bool runwayIsActive(DtUniqueID runwayId, unsigned int logicalRunwayIndex) const;
135 
137  // Set / get the arrestor state of a logical runway
138  virtual void setRunwayHasArrestorsUp(DtUniqueID runwayId, unsigned int logicalRunwayIndex, bool hasArrestorsUp);
139  virtual bool runwayHasArrestorsUp(DtUniqueID runwayId, unsigned int logicalRunwayIndex) const;
141 
143  // Set / get the intensity of the RunwayGuard lights for a physical runway.
144  virtual void setRunwayGuardLightsIntensity(DtUniqueID runwayId, float intensity);
145  virtual float runwayGuardLightsIntensity(DtUniqueID runwayId) const;
147 
149  // Set / get the wet/dry state of a runway
150  virtual void setRunwayCondition(DtUniqueID runwayId, DtRunwayCondition cond);
151  virtual DtRunwayCondition runwayCondition(DtUniqueID runwayId) const;
153 
155  // Set / get the damage state of a runway
156  virtual void setRunwayIsDamaged(DtUniqueID runwayId, bool isDamaged);
157  virtual bool runwayIsDamaged(DtUniqueID runwayId) const;
159 
161  virtual DtPhysicalRunwayStatusData* findPhysicalRunwayData(DtUniqueID runwayId);
162 
164  virtual DtPhysicalRunwayStatusData physicalRunwayData(DtUniqueID runwayId) const;
165 
167  virtual DtLogicalRunwayStatusData* findLogicalRunwayData(DtUniqueID runwayId, const std::string& logicalRunwayName);
168 
170  virtual DtLogicalRunwayStatusData logicalRunwayData(DtUniqueID runwayId, const std::string& logicalRunwayName) const;
171 
173  virtual DtLogicalRunwayStatusData* findLogicalRunwayData(DtUniqueID runwayId, unsigned int logicalRunwayIndex);
174 
176  virtual DtLogicalRunwayStatusData logicalRunwayData(DtUniqueID runwayId, unsigned int logicalRunwayIndex) const;
178 
180  virtual void setAerodromeLightIntensity(DtUniqueID aerodromeId, DtAerodromeLightsEnum lightType, float intensity);
184  virtual float aerodromeLightIntensity(DtUniqueID aerodromeId, DtAerodromeLightsEnum lightType) const;
186  public:
187 
189  static DtAerodromeStatusManager& instance(DtBaseConnection& conn);
190 
191  protected:
192 
193  protected:
195 
196  DtRunwayLightingUpdaterAgent* myRunwayLightingUpdaterAgent;
197  DtRunwayStatusUpdaterAgent* myRunwayStatusUpdaterAgent;
198  DtAerodromeLightingUpdaterAgent* myAerodromeLightingUpdaterAgent;
199 
200  std::unordered_map<DtUniqueID, DtAerodromeStatusData> myAerodromeIdToDataMap;
201  std::unordered_map<std::string, DtUniqueID> myAerodromeNameToIdMap;
202  std::unordered_map<DtUniqueID, DtPhysicalRunwayStatusData> myRunwayIdToDataMap;
203  };
204 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtBaseConnection & myConnection
Definition: DtAerodromeStatusManager.h:194
DtRunwayStatusUpdaterAgent * myRunwayStatusUpdaterAgent
Definition: DtAerodromeStatusManager.h:197
Contains makVrv::DtAerodromeStatusData class.
DtAerodromeStatusManager manages status data for all the aerodromes and related runways in a VR-Link ...
Definition: DtAerodromeStatusManager.h:57
DtRunwayLightsEnum
Enumeration for light types placed on runways. Note that all are associated with logical runways exce...
Definition: DtLightGroupNameManager.h:22
DtLogicalRunwayStatusData maintains the status of the logical runway(s) associated with a VR-Link Ref...
Definition: DtLogicalRunwayStatusData.h:29
std::unordered_map< DtUniqueID, DtPhysicalRunwayStatusData > myRunwayIdToDataMap
Definition: DtAerodromeStatusManager.h:202
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
DtRunwayLightingUpdaterAgent * myRunwayLightingUpdaterAgent
Definition: DtAerodromeStatusManager.h:196
Contains makVrv::DtVirtualBaseClass class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtAerodromeLightingUpdaterAgent * myAerodromeLightingUpdaterAgent
Definition: DtAerodromeStatusManager.h:198
std::unordered_map< std::string, DtUniqueID > myAerodromeNameToIdMap
Definition: DtAerodromeStatusManager.h:201
DtAerodromeLightsEnum
Enumeration for light types that are aerodrome wide.
Definition: DtLightGroupNameManager.h:40
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
std::unordered_map< DtUniqueID, DtAerodromeStatusData > myAerodromeIdToDataMap
Definition: DtAerodromeStatusManager.h:200
DtPhysicalRunwayStatusData is used to maintain the current state of of a reflected runway in a VR-Lin...
Definition: DtPhysicalRunwayStatusData.h:33
DtRunwayCondition
Definition: DtAerodromeStatusManager.h:30
Contains makVrv::DtUniqueID type.
DtAerodromwStatusData is used to maintain the current state of of a reflected aerodrome in a VR-Link ...
Definition: DtAerodromeStatusData.h:25
Contains makVrv::DtRunwayStatusData class.
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)