VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
sovietIffDecoder.h
Go to the documentation of this file.
1 #if DtHLA
2 
3 #ifndef DtSovietIffDecoder_H_
4 #define DtSovietIffDecoder_H_
5 
6 #include "iffDecoder.h"
7 
11 
15 
16 #define DtDECLARE_SOVIET_IFF_ATTR_DECODER(attrName) \
17  DtDECLARE_ATTR_DECODER(DtIffStateRepository, attrName)
18 
19 #define DtDEFINE_SIMPLE_SOVIET_IFF_ATTR_DECODER( \
20  attrName, netType, inspector) \
21  DtDEFINE_SIMPLE_SOVIET_IFF_ATTR_DECODER_WITH_CAST( \
22  attrName, netType, inspector, (netType))
23 
24 #define DtDEFINE_SIMPLE_SOVIET_IFF_ATTR_DECODER_WITH_CAST( \
25  attrName, netType, mutator, castExpr) \
26  DtDEFINE_SIMPLE_ATTR_DECODER_WITH_CAST( \
27  DtSovietIffDecoder, DtSovietStateRepository, \
28  attrName, netType, mutator, castExpr)
29 
30 #define DtDEFINE_SIMPLE_SOVIET_ATTR_DECODER_WITH_CAST_AND_PARAM( \
31  decClass, stateRepClass, attrName, netType, mutator, param, castExpr) \
32 void decClass::decode##attrName( \
33  stateRepClass* stateRep, \
34  const RTI::AttributeHandleValuePairSet& attrs, \
35  int index) \
36 { \
37  RTI::ULong length = 0; \
38  netType* netValPtr = (netType*)attributeData(attrs, index, length, sizeof(netType), #attrName); \
39  if (netValPtr) \
40  { \
41  if ( !stateRep->soviet() ) \
42  { \
43  stateRep->setModeEnabled(DtSoviet, true); \
44  } \
45  stateRep->soviet()->mutator(param, castExpr *netValPtr); \
46  } \
47 }
48 
49 #define DtDEFINE_SIMPLE_SOVIET_IFF_ATTR_DECODER_WITH_CAST_AND_PARAM( \
50  attrName, netType, mutator, param, castExpr) \
51  DtDEFINE_SIMPLE_SOVIET_ATTR_DECODER_WITH_CAST_AND_PARAM( \
52  DtSovietIffDecoder, DtIffStateRepository, attrName, netType, mutator, param, castExpr)
53 
54 class DT_DLL_VL DtSovietIffDecoder : public DtIffDecoder//DtHlaStateDecoder //
55 {
56 public:
59  DtExerciseConn* exConn,
60  DtObjClassDesc* classDesc);
61 
63  virtual ~DtSovietIffDecoder();
64 
67 
70 
71 public:
72 
73  static DtHlaStateDecoder* create(
74  DtExerciseConn* exConn,
75  DtObjClassDesc* classDesc);
76 
77 protected:
78 
79  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter1Enabled);
80  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter1IsMalfunctioning);
81  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter1IsDamaged);
82  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter1IsOn);
83 
84  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter2Enabled);
85  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter2IsMalfunctioning);
86  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter2IsDamaged);
87  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter2IsOn);
88 
89  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter3Enabled);
90  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter3IsMalfunctioning);
91  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter3IsDamaged);
92  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter3IsOn);
93 
94  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter4Enabled);
95  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter4IsMalfunctioning);
96  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter4IsDamaged);
97  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter4IsOn);
98 
99  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter5Enabled);
100  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter5IsMalfunctioning);
101  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter5IsDamaged);
102  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter5IsOn);
103 
104  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter6Enabled);
105  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter6IsMalfunctioning);
106  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter6IsDamaged);
107  DtDECLARE_SOVIET_IFF_ATTR_DECODER(Parameter6IsOn);
108 
109 };
110 
111 #define DtDEFINE_SIMPLE_MAKRPR3_SOVIET_IFF_TRANSPONDER_ATTR_DECODER( \
112  attrName, netType, mutator) \
113  DtDEFINE_SIMPLE_ATTR_DECODER_WITH_CAST( \
114  DtMAKRPR3_SovietIffTransponderDecoder, DtIffStateRepository, \
115  attrName, netType, mutator, (netType))
116 
118 {
119 public:
122  DtExerciseConn* exConn,
123  DtObjClassDesc* classDesc);
124 
127 
130 
133 
134 public:
135 
136  static DtHlaStateDecoder* create(
137  DtExerciseConn* exConn,
138  DtObjClassDesc* classDesc);
139 
140 protected:
141  DtDECLARE_IFF_ATTR_DECODER(SystemDesignator);
142 };
143 
144 #define DtDEFINE_SIMPLE_MAKRPR3_SOVIET_IFF_INTERROGATOR_ATTR_DECODER( \
145  attrName, netType, mutator) \
146  DtDEFINE_SIMPLE_ATTR_DECODER( \
147  DtMAKRPR3_SovietIffInterrogatorDecoder, DtIffStateRepository, \
148  attrName, netType, mutator)
149 
151 {
152 public:
155  DtExerciseConn* exConn,
156  DtObjClassDesc* classDesc);
157 
160 
163 
166 
167 public:
168 
169  static DtHlaStateDecoder* create(
170  DtExerciseConn* exConn,
171  DtObjClassDesc* classDesc);
172 
173 protected:
174  DtDECLARE_IFF_ATTR_DECODER(SystemDesignator);
175 };
176 
177 #endif
178 #endif
179 
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
This file provides a declaration of the class DtIffDecoder.
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
static DtHlaStateDecoder * create(DtExerciseConn *exConn, DtObjClassDesc *classDesc)
Definition: sovietIffDecoder.h:54
static DtHlaStateDecoder * create(DtExerciseConn *exConn, DtObjClassDesc *classDesc)
An instance of DtObjClassDesc is a "class descriptor" for an HLA Object class.
Definition: objClassDesc1516.h:41
DtSovietIffDecoder & operator=(const DtSovietIffDecoder &orig)
assignment operator
DtIffDecoder & operator=(const DtIffDecoder &orig)
assignment operator
DtHlaStateDecoder is used to provide decoding of a state message into a state repository in an HLA (a...
Definition: hlaStateDecoder.h:34
Definition: sovietIffDecoder.h:150
The DtIffDecoder class:
Definition: iffDecoder.h:63
Definition: sovietIffDecoder.h:117
DtDECLARE_IFF_ATTR_DECODER(EventIdentifier)
#define DtDECLARE_SOVIET_IFF_ATTR_DECODER(attrName)
Definition: sovietIffDecoder.h:16

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)