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  void setIdentificationCode(const std::wstring&);
44  const std::wstring identificationCode() const;
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();
54 
56  virtual void makeReadOnly();
57  virtual void updateStateData(DtStateData*) override;
58 
59  protected:
60  VRF::WriteNavAidRadioTransmitterRepository myWriteNavAidRadioTransmitterRepository;
64  };
65 
68  {
69  public:
71 
72  const std::wstring identificationCode() const;
73  const DtRadioTransmitterStateComponent* currentFrameRadioTransmitter();
74  bool readComponentValid() const;
75  bool findReadComponent(DtRadioTransmitterStateComponent*);
76 
77  const DtRadioTransmitterStateComponent* currentFrameRadioTransmitter() const override;
78  virtual void updateStateData(DtStateData*) override;
79 
80  protected:
81  VRF::ReadNavAidRadioTransmitterRepository myReadNavAidRadioTransmitterRepository;
84  };
85 
89  {
90  public:
92 
95 
96  bool isDoubleBuffered() { return true; };
97  const DtFrameStateInterface* currentFrameState() const { return &myCurrentFrameState; }
98  virtual DtFrameStateInterface* nextFrameState() { return &myNextFrameState; };
99  virtual const DtFrameStateInterface* nextFrameState() const { return &myNextFrameState; };
100 
102  {
103  if (!myFoundComponent)
104  {
105  myFoundComponent = myCurrentFrameState.findReadComponent(myNextFrameState.nextFrameRadioTransmitter());
106  }
107 
108  myCurrentFrameState.emitComponentUpdated();
109  }
110 
112  {
113  myCurrentFrameState.updateStateData(sd);
114  myNextFrameState.updateStateData(sd);
115  }
116 
117  virtual void aboutToBeDeleted() override
118  {
120  myCurrentFrameState.aboutToBeDeleted();
121  myNextFrameState.aboutToBeDeleted();
122  }
123 
127  virtual void addAdditionalStateComponents() override;
128  virtual void removeAdditionalStateComponents() override;
129 
130  virtual bool forceAdvance() override;
131 
133  virtual void firstFrameAdvance() override;
134  virtual void completeSetup() override;
135  virtual void setPublishingOnLegionNetwork(bool b) override;
136 
137  protected:
142  };
143 
147 }
DtNavAidRadioTransmitterStateComponentCurrentFrame myCurrentFrameState
Definition: navAidRadioTransmitterStateComponent.h:138
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:139
virtual DtRadioTransmitterStateComponent * nextFrameRadioTransmitter()
Definition: navAidRadioTransmitterStateComponent.h:32
3) Define the current frame class. This will be used for read access.
Definition: navAidRadioTransmitterStateComponent.h:67
Definition: stateComponent.h:266
virtual DtFrameStateInterface * nextFrameState()
Definition: navAidRadioTransmitterStateComponent.h:98
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: navAidRadioTransmitterStateComponent.h:88
DtStateData * myStateData
Definition: navAidRadioTransmitterStateComponent.h:62
virtual void aboutToBeDeleted() override
Definition: navAidRadioTransmitterStateComponent.h:117
virtual const DtFrameStateInterface * nextFrameState() const
Definition: navAidRadioTransmitterStateComponent.h:99
bool myFoundComponent
Definition: navAidRadioTransmitterStateComponent.h:140
VRF::ReadNavAidRadioTransmitterRepository myReadNavAidRadioTransmitterRepository
Definition: navAidRadioTransmitterStateComponent.h:81
bool myPublishingOnLegionNetwork
Definition: navAidRadioTransmitterStateComponent.h:63
DtNavAidRadioTransmitterStateComponentNextFrame myNextFrameState
Definition: navAidRadioTransmitterStateComponent.h:139
void updateStateData(DtStateData *sd)
Implement to update data storage to the new state data.
Definition: navAidRadioTransmitterStateComponent.h:111
bool isDoubleBuffered()
Definition: navAidRadioTransmitterStateComponent.h:96
const DtRadioTransmitterStateComponent * myRadioTransmitter
Definition: navAidRadioTransmitterStateComponent.h:82
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:339
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:228
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:379
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:146
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
#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.
const DtFrameStateInterface * currentFrameState() const
Definition: navAidRadioTransmitterStateComponent.h:97
void updateDataStorage()
Implement to update data storage. Called from advanceFrame.
Definition: navAidRadioTransmitterStateComponent.h:101
DtRadioTransmitterStateComponent * myRadioTransmitter
Definition: navAidRadioTransmitterStateComponent.h:141
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:291
DtStateData * myStateData
Definition: navAidRadioTransmitterStateComponent.h:83

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)