VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
navAidRadioTransmitterStateComponent.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 #include <vrfOM/sets/readNavAidRadioTransmitterRepository.hpp>
12 #include <vrfOM/sets/writeNavAidRadioTransmitterRepository.hpp>
13 
14 namespace makVrf
15 {
16  class DtRadioTransmitterStateComponent;
17 
21  {
22  public:
24 
26  : DtFrameStateInterface(stateData)
27  {
28  }
29 
30  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(std::wstring, identificationCode, IdentificationCode)
31  virtual const DtRadioTransmitterStateComponent* currentFrameRadioTransmitter() const { throw DtUnimplementedMethod("The const currentFrameRadioTransmitter() method is unimplemented"); };
32  virtual DtRadioTransmitterStateComponent* nextFrameRadioTransmitter() { throw DtUnimplementedMethod("The const nextFrameRadioTransmitter() method is unimplemented"); };
33  };
34 
37  {
38  public:
40 
42 
43  virtual void setIdentificationCode(const std::wstring&) override;
44  virtual const std::wstring identificationCode() const override;
45 
46  virtual const DtRadioTransmitterStateComponent* currentFrameRadioTransmitter() const override;
47  virtual DtRadioTransmitterStateComponent* nextFrameRadioTransmitter() override;
48 
49  void setRadioTransmitter(DtRadioTransmitterStateComponent*);
50  void setPublishingOnLegionNetwork(bool b);
51 
53  virtual void makeWritable() override;
54 
56  virtual void makeReadOnly() override;
57  virtual void updateStateData(DtStateData*) override;
58 
59  protected:
60  VRF::WriteNavAidRadioTransmitterRepository myWriteNavAidRadioTransmitterRepository;
63  };
64 
67  {
68  public:
70 
71  virtual const std::wstring identificationCode() const override;
72  bool readComponentValid() const;
73  bool findReadComponent(DtRadioTransmitterStateComponent*);
74 
75  virtual const DtRadioTransmitterStateComponent* currentFrameRadioTransmitter() const override;
76  virtual void updateStateData(DtStateData*) override;
77 
78  protected:
79  VRF::ReadNavAidRadioTransmitterRepository myReadNavAidRadioTransmitterRepository;
81  };
82 
86  {
87  public:
89 
92 
93  bool isDoubleBuffered() { return true; };
94  virtual const DtFrameStateInterface* currentFrameState() const override { return &myCurrentFrameState; }
95  virtual DtFrameStateInterface* nextFrameState() override { return &myNextFrameState; };
96  virtual const DtFrameStateInterface* nextFrameState() const override { return &myNextFrameState; };
97 
98  virtual void updateDataStorage() override
99  {
100  if (!myFoundComponent)
101  {
102  myFoundComponent = myCurrentFrameState.findReadComponent(myNextFrameState.nextFrameRadioTransmitter());
103  }
104 
105  myCurrentFrameState.emitComponentUpdated();
106  }
107 
108  virtual void updateStateData(DtStateData* sd) override
109  {
110  myCurrentFrameState.updateStateData(sd);
111  myNextFrameState.updateStateData(sd);
112  }
113 
114  virtual void aboutToBeDeleted() override
115  {
117  myCurrentFrameState.aboutToBeDeleted();
118  myNextFrameState.aboutToBeDeleted();
119  }
120 
124  virtual void addAdditionalStateComponents() override;
125  virtual void removeAdditionalStateComponents() override;
126 
127  virtual bool forceAdvance() override;
128 
130  virtual void firstFrameAdvance() override;
131  virtual void completeSetup() override;
132  virtual void setPublishingOnLegionNetwork(bool b) override;
133 
134  protected:
139  };
140 
144 }
DtNavAidRadioTransmitterStateComponentCurrentFrame myCurrentFrameState
Definition: navAidRadioTransmitterStateComponent.h:135
virtual const DtFrameStateInterface * nextFrameState() const override
Definition: navAidRadioTransmitterStateComponent.h:96
Definition: stateDataTypes.h:23
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: radioTransmitterStateComponent.h:140
virtual DtRadioTransmitterStateComponent * nextFrameRadioTransmitter()
Definition: navAidRadioTransmitterStateComponent.h:32
virtual DtFrameStateInterface * nextFrameState() override
Definition: navAidRadioTransmitterStateComponent.h:95
3) Define the current frame class. This will be used for read access.
Definition: navAidRadioTransmitterStateComponent.h:66
Definition: stateComponent.h:269
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: navAidRadioTransmitterStateComponent.h:85
virtual void aboutToBeDeleted() override
Definition: navAidRadioTransmitterStateComponent.h:114
virtual void updateStateData(DtStateData *sd) override
Implement to update data storage to the new state data.
Definition: navAidRadioTransmitterStateComponent.h:108
virtual void updateDataStorage() override
Implement to update data storage. Called from advanceFrame.
Definition: navAidRadioTransmitterStateComponent.h:98
bool myFoundComponent
Definition: navAidRadioTransmitterStateComponent.h:137
VRF::ReadNavAidRadioTransmitterRepository myReadNavAidRadioTransmitterRepository
Definition: navAidRadioTransmitterStateComponent.h:79
bool myPublishingOnLegionNetwork
Definition: navAidRadioTransmitterStateComponent.h:62
DtNavAidRadioTransmitterStateComponentNextFrame myNextFrameState
Definition: navAidRadioTransmitterStateComponent.h:136
bool isDoubleBuffered()
Definition: navAidRadioTransmitterStateComponent.h:93
const DtRadioTransmitterStateComponent * myRadioTransmitter
Definition: navAidRadioTransmitterStateComponent.h:80
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
2) Define the next frame class. This will be used for write access.
Definition: navAidRadioTransmitterStateComponent.h:36
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:231
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:384
VRF::WriteNavAidRadioTransmitterRepository myWriteNavAidRadioTransmitterRepository
Definition: navAidRadioTransmitterStateComponent.h:60
#define UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:53
virtual void aboutToBeDeleted()
DtStateComponentCreator< DtNavAidRadioTransmitterStateComponentImplementation > DtNavAidRadioTransmitterStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: navAidRadioTransmitterStateComponent.h:143
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: navAidRadioTransmitterStateComponent.h:20
virtual const DtFrameStateInterface * currentFrameState() const override
Definition: navAidRadioTransmitterStateComponent.h:94
#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
DtRadioTransmitterStateComponent * myRadioTransmitter
Definition: navAidRadioTransmitterStateComponent.h:61
Contains the DtStateComponent class declaration.
DtRadioTransmitterStateComponent * myRadioTransmitter
Definition: navAidRadioTransmitterStateComponent.h:138
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:294

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)