VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
sovietIffEncoder.h
Go to the documentation of this file.
1 #if DtHLA
2 
3 #ifndef DtSovietIffEncoder_H_
4 #define DtSovietIffEncoder_H_
5 
6 #include "iffEncoder.h"
7 
11 
15 
18 
21 #define DtDECLARE_SOVIET_IFF_ATTR_CHECKER(attrName) \
22  DtDECLARE_ATTR_CHECKER(DtIffStateRepository, attrName)
23 
26 #define DtDECLARE_SOVIET_IFF_ATTR_ENCODER(attrName) \
27  DtDECLARE_ATTR_ENCODER(DtIffStateRepository, attrName)
28 
33 #define DtDEFINE_SIMPLE_SOVIET_IFF_ATTR_ENCODER( \
34  attrName, netType, inspector) \
35  DtDEFINE_SIMPLE_ATTR_ENCODER(DtSovietIffEncoder, \
36  DtSovietStateRepository, attrName, netType, inspector)
37 
43 #define DtDEFINE_SIMPLE_SOVIET_IFF_ATTR_CHECKER( \
44  attrName, inspector) \
45  DtDEFINE_SIMPLE_ATTR_CHECKER(DtSovietIffEncoder, \
46  DtSovietStateRepository, attrName, inspector)
47 
53 #define DtDEFINE_SIMPLE_SOVIET_ATTR_ENCODER_WITH_PARAM(\
54  encClass, stateRepClass, attrName, netType, inspector, param) \
55  void encClass::encode##attrName(const stateRepClass& rep, \
56  RTI::AttributeHandleValuePairSet* attrs, \
57  RTI::AttributeHandle attrHandle) \
58 { \
59  netType netVal; \
60  netVal = rep.soviet()->inspector(param); \
61  attrs->add(attrHandle, (char*) &netVal, sizeof(netType)); \
62 }
63 
64 #define DtDEFINE_SIMPLE_SOVIET_IFF_ATTR_ENCODER_WITH_PARAM( \
65  attrName, netType, inspector, param) \
66  DtDEFINE_SIMPLE_SOVIET_ATTR_ENCODER_WITH_PARAM( \
67  DtSovietIffEncoder, DtIffStateRepository, attrName, netType, inspector, param)
68 
69 #define DtDEFINE_SIMPLE_SOVIET_ATTR_CHECKER_WITH_PARAM( \
70  encClass, stateRepClass, attrName, inspector, param) \
71 bool encClass::need##attrName(const stateRepClass& stateRep, \
72  const stateRepClass& asSeenByRemote) \
73 { \
74  return (bool) !(stateRep.soviet()->inspector(param) == \
75  asSeenByRemote.soviet()->inspector(param)); \
76 }
77 
83 #define DtDEFINE_SIMPLE_SOVIET_IFF_ATTR_CHECKER_WITH_PARAM( \
84  attrName, inspector, param) \
85  DtDEFINE_SIMPLE_SOVIET_ATTR_CHECKER_WITH_PARAM( \
86  DtSovietIffEncoder, DtIffStateRepository, attrName, inspector, param)
87 
89 {
90 public:
93  DtExerciseConn* exConn,
94  DtObjClassDesc* classDesc);
95 
97  virtual ~DtSovietIffEncoder();
98 
101 
104 
105 public:
106 
107  static DtHlaStateEncoder* create(
108  DtExerciseConn* exConn,
109  DtObjClassDesc* classDesc);
110 
111 protected:
112 
113  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter1Enabled);
114  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter1IsMalfunctioning);
115  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter1IsDamaged);
116  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter1IsOn);
117 
118  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter2Enabled);
119  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter2IsMalfunctioning);
120  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter2IsDamaged);
121  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter2IsOn);
122 
123  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter3Enabled);
124  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter3IsMalfunctioning);
125  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter3IsDamaged);
126  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter3IsOn);
127 
128  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter4Enabled);
129  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter4IsMalfunctioning);
130  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter4IsDamaged);
131  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter4IsOn);
132 
133  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter5Enabled);
134  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter5IsMalfunctioning);
135  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter5IsDamaged);
136  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter5IsOn);
137 
138  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter6Enabled);
139  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter6IsMalfunctioning);
140  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter6IsDamaged);
141  DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter6IsOn);
142 
143  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter1Enabled);
144  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter1IsMalfunctioning);
145  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter1IsDamaged);
146  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter1IsOn);
147 
148  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter2Enabled);
149  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter2IsMalfunctioning);
150  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter2IsDamaged);
151  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter2IsOn);
152 
153  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter3Enabled);
154  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter3IsMalfunctioning);
155  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter3IsDamaged);
156  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter3IsOn);
157 
158  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter4Enabled);
159  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter4IsMalfunctioning);
160  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter4IsDamaged);
161  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter4IsOn);
162 
163  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter5Enabled);
164  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter5IsMalfunctioning);
165  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter5IsDamaged);
166  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter5IsOn);
167 
168  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter6Enabled);
169  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter6IsMalfunctioning);
170  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter6IsDamaged);
171  DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter6IsOn);
172 
173 };
174 
179 #define DtDEFINE_SIMPLE_MAKRPR3_SOVIET_IFF_TRANSPONDER_ATTR_ENCODER( \
180  attrName, netType, inspector) \
181  DtDEFINE_SIMPLE_ATTR_ENCODER(DtMAKRPR3_SovietIffTransponderEncoder, \
182  DtIffStateRepository, attrName, netType, inspector)
183 
189 #define DtDEFINE_SIMPLE_MAKRPR3_SOVIET_IFF_TRANSPONDER_ATTR_CHECKER( \
190  attrName, inspector) \
191  DtDEFINE_SIMPLE_ATTR_CHECKER(DtMAKRPR3_SovietIffTransponderEncoder, \
192  DtIffStateRepository, attrName, inspector)
193 
195 {
196 public:
199  DtExerciseConn* exConn,
200  DtObjClassDesc* classDesc);
201 
204 
207 
210 
211 public:
212 
213  static DtHlaStateEncoder* create(
214  DtExerciseConn* exConn,
215  DtObjClassDesc* classDesc);
216 
217 protected:
218 
219  DtDECLARE_IFF_ATTR_CHECKER(SystemDesignator);
220  DtDECLARE_IFF_ATTR_ENCODER(SystemDesignator);
221 
222 };
223 
228 #define DtDEFINE_SIMPLE_MAKRPR3_SOVIET_IFF_INTERROGATOR_ATTR_ENCODER( \
229  attrName, netType, inspector) \
230  DtDEFINE_SIMPLE_ATTR_ENCODER(DtMAKRPR3_SovietIffInterrogatorEncoder, \
231  DtIffStateRepository, attrName, netType, inspector)
232 
238 #define DtDEFINE_SIMPLE_MAKRPR3_SOVIET_IFF_INTERROGATOR_ATTR_CHECKER( \
239  attrName, inspector) \
240  DtDEFINE_SIMPLE_ATTR_CHECKER(DtMAKRPR3_SovietIffInterrogatorEncoder, \
241  DtIffStateRepository, attrName, inspector)
242 
244 {
245 public:
248  DtExerciseConn* exConn,
249  DtObjClassDesc* classDesc);
250 
253 
256 
259 
260 public:
261 
262  static DtHlaStateEncoder* create(
263  DtExerciseConn* exConn,
264  DtObjClassDesc* classDesc);
265 
266 protected:
267 
268  DtDECLARE_IFF_ATTR_CHECKER(SystemDesignator);
269  DtDECLARE_IFF_ATTR_ENCODER(SystemDesignator);
270 
271 };
272 
273 #endif
274 #endif
275 
Instances of DtSovietStateRepository are used to store state data for IFFData.Soviet objects...
Definition: iffSovietStateRepository.h:29
Instances of DtExerciseConn are used to provide an application's interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
This file provides a declaration of the class DtIffEncoder.
#define DtDECLARE_SOVIET_IFF_ATTR_ENCODER(attrName)
This is used to declare static member functions that perform attribute encoding.
Definition: sovietIffEncoder.h:26
static DtHlaStateEncoder * create(DtExerciseConn *exConn, DtObjClassDesc *classDesc)
DtHlaStateEncoder is used to provide encoding of a state repository into a state message in an HLA (a...
Definition: hlaStateEncoder.h:30
An instance of DtObjClassDesc is a "class descriptor" for an HLA Object class.
Definition: objClassDesc1516.h:41
DtSovietIffEncoder & operator=(const DtSovietIffEncoder &orig)
assignment operator
DtDECLARE_IFF_ATTR_CHECKER(EventIdentifier)
DtDECLARE_IFF_ATTR_ENCODER(EventIdentifier)
Definition: sovietIffEncoder.h:88
#define DtDECLARE_SOVIET_IFF_ATTR_CHECKER(attrName)
We define several macros that can be helpful in defining the class, and the individual decoding funct...
Definition: sovietIffEncoder.h:21
The DtIffEncoder class:
Definition: iffEncoder.h:69
static DtHlaStateEncoder * create(DtExerciseConn *exConn, DtObjClassDesc *classDesc)
Definition: sovietIffEncoder.h:194
DtIffEncoder & operator=(const DtIffEncoder &orig)
assignment operator
Definition: sovietIffEncoder.h:243

Document ID: Generated on Thu Sep 19 02:12:35 EDT 2024 from SVN revision 269601
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)