VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
iffModeSettings.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2022 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #include "vrfutil/vrfutilDefines.h"
13 #include <readerWriter/rwList.h>
14 #include <vlpi/disEnums.h>
15 #include <vector>
16 #include <string>
17 #include <boost/signals2.hpp>
18 
19 static const DtModeType DtGeneralSettingsModeType = (DtModeType)10000;
20 
21 namespace makVrf
22 {
24  {
28  };
29 
30  static std::vector<std::string> DtModeEnums =
31  {
32  "Mode 1",
33  "Mode 2",
34  "Mode 3A",
35  "Mode 3C",
36  "Mode 4",
37  "Mode 5",
38  "Mode S",
39  "RRB",
40  "Soviet",
41  "TCAS"
42  };
43 
44  static std::vector<DtModeType> DtAllModeTypes =
45  {
46  DtMode1, DtMode2, DtMode3A, DtMode3C, DtMode4, DtMode5, DtModeS, DtRRB, DtSoviet, DtTCAS
47  };
48 }
49 
50 #define CAN_HAVE_CODES_SET(modeType) ((modeType == DtMode1) || (modeType == DtMode1) || (modeType == DtRRB) || (modeType == DtMode3A))
51 
55 class DtIffModeSetting;
56 
58 {
59 public:
60  virtual DtIffModeSetting* create() const = 0;
61 };
62 
64 {
65 public:
67  virtual ~DtIffModeSettingsFactory();
68 
70  virtual void setModeSettingsCreator(DtModeType, DtIffModeSettingCreator*);
71  virtual DtIffModeSetting* modeSetting(DtModeType);
72 
73 protected:
74  typedef std::map<DtModeType, DtIffModeSettingCreator*> ModeSettingsCreators;
76 };
77 
78 template <typename T>
80 {
81 public:
82  virtual DtIffModeSetting* create() const override
83  {
84  return new T;
85  }
86 };
87 
89 {
90 public:
91  DtIffModeSetting(const DtString& name, DtReaderWriterRegistry* parentRegistry = nullptr);
92  DtIffModeSetting(const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry = nullptr);
93  DtIffModeSetting(const DtIffModeSetting& orig, DtReaderWriterRegistry* parentRegistry = nullptr);
94 
95  virtual ~DtIffModeSetting();
96 
98  virtual DtModeType modeType() const = 0;
99 
100  virtual DtIffModeSetting* clone() const = 0;
101 
102  virtual DtString stringRep() const = 0;
103 
105 
106  virtual int netRepSize() const;
107  virtual char* setToNet(char* netRep) const;
108  virtual const char* setFromNet(const char* netRep) = 0;
109 
111 
112  static DtString ReaderWriterModeTypeName(int);
113 
114  virtual bool operator==(const DtIffModeSetting&) const;
115  virtual bool operator!=(const DtIffModeSetting& rhs) const
116  {
117  return !(*this == rhs);
118  }
119 
121  boost::signals2::signal<void (const DtIffModeSetting*)> signal_settingChanged;
122 };
123 
125 {
126 public:
127  DtIffModeSettingsList(const DtString& name, DtReaderWriterRegistry* parentRegistry = nullptr);
128  DtIffModeSettingsList(const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry = nullptr);
129  DtIffModeSettingsList(const DtIffModeSettingsList& orig, DtReaderWriterRegistry* parentRegistry = nullptr);
130 
133 
134  virtual ~DtIffModeSettingsList();
135 
136  bool operator==(const DtIffModeSettingsList&) const;
137  bool operator!=(const DtIffModeSettingsList& rhs) const
138  {
139  return !(*this == rhs);
140  }
141 
143  virtual bool modeIsOn(int) const;
144 
146  virtual bool anyModeIsOn() const;
147 
148  virtual bool hasModeSetting(int i) const;
149  virtual DtIffModeSetting* modeSetting(int);
150  virtual const DtIffModeSetting* modeSetting(int) const;
151 
153  typedef std::map<int, DtIffModeSetting*> ModeSettings;
154  const ModeSettings& modeSettings() const
155  {
156  return myModeSettings;
157  }
158 
160  {
161  return myModeSettings;
162  }
163 
164  virtual std::vector<DtModeType> enabledModes() const;
165 
166  virtual DtString stringRep() const;
167 
168  virtual int netRepSize() const;
169  virtual char* setToNet(char* netRep) const;
170  virtual const char* setFromNet(const char* netRep);
171 
172  virtual DtListItem* add(DtReaderWriter*) override;
173  virtual void removeAndDeleteAll() override;
174 
176  boost::signals2::signal<void (const DtIffModeSetting*)> signal_settingChanged;
177 
178 protected:
179  virtual void slot_settingChanged(const DtIffModeSetting*);
180  virtual void copyList(const DtIffModeSettingsList&);
181 
182  virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
183  const DtVariableBindingsList& variableBindings);
184 
185  virtual void postGetSelf();
186 
187 protected:
189 };
bool operator==(const DtReaderWriter &) const
Equivalence operator.
Definition: iffModeSettings.h:79
This class allows one to collect and compare strings using an index number instead of having to do st...
Definition: symbolString.h:27
virtual bool operator!=(const DtIffModeSetting &rhs) const
Definition: iffModeSettings.h:115
ModeSettings myModeSettings
Definition: iffModeSettings.h:188
A Readable, Writable version of DtList. This class cannot be used directly, but must be inherited to ...
Definition: rwList.h:26
virtual void postGetSelf()
Called after either version of getSelf (mtl or environment). Default is no-op.
std::map< DtModeType, DtIffModeSettingCreator * > ModeSettingsCreators
Definition: iffModeSettings.h:74
virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)=0
This method must be overridden by a subclass. Within this method, new instances of the DtReaderWriter...
Definition: readerWriter.h:85
static std::vector< DtModeType > DtAllModeTypes
Definition: iffModeSettings.h:44
Definition: readerWriterRegistry.h:39
Definition: iffModeSettings.h:57
const ModeSettings & modeSettings() const
Definition: iffModeSettings.h:154
boost::signals2::signal< void(const DtIffModeSetting *)> signal_settingChanged
Signal sent when something about the setting changes that it wants to notify about.
Definition: iffModeSettings.h:176
static DtReaderWriterFactory * factory()
DtMode5PlatformTypeEnum8
Definition: iffModeSettings.h:23
Definition: iffModeSettings.h:88
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
Definition: iffModeSettings.h:124
Definition: iffModeSettings.h:63
bool operator!=(const DtIffModeSettingsList &rhs) const
Definition: iffModeSettings.h:137
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
virtual DtListItem * add(DtReaderWriter *data)
Add element to the end of the list. Returns the DtListItem envelope object that contains your new ele...
bool operator==(const DtRwList &rhs) const
Iterates over all items and calls the factory to compare.
boost::signals2::signal< void(const DtIffModeSetting *)> signal_settingChanged
Signal sent when something about the setting changes that it wants to notify about.
Definition: iffModeSettings.h:121
virtual DtIffModeSetting * create() const override
Definition: iffModeSettings.h:82
const DtRwList & operator=(const DtRwList &orig)
Calls down to DtReaderWriter::operator=(). List elements are not copied.
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
static std::vector< std::string > DtModeEnums
Definition: iffModeSettings.h:30
const DtReaderWriter & operator=(const DtReaderWriter &orig)
assignment operator
ModeSettings & modeSettings()
Definition: iffModeSettings.h:159
ModeSettingsCreators myModeSettingsCreators
Definition: iffModeSettings.h:75
virtual void removeAndDeleteAll()
Removes and deletes all items in the list.
static const DtModeType DtGeneralSettingsModeType
Definition: iffModeSettings.h:19
std::map< int, DtIffModeSetting * > ModeSettings
Returns a map based on what is in the list.
Definition: iffModeSettings.h:153

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)