VR-Link API Documentation for DIS
 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:
58  DtSovietIffDecoder(
59  DtExerciseConn* exConn,
60  DtObjClassDesc* classDesc);
61 
63  virtual ~DtSovietIffDecoder();
64 
66  DtSovietIffDecoder(const DtSovietIffDecoder& orig);
67 
69  DtSovietIffDecoder& operator=(const DtSovietIffDecoder& orig);
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 
117 class DT_DLL_VL DtMAKRPR3_SovietIffTransponderDecoder : public DtSovietIffDecoder
118 {
119 public:
121  DtMAKRPR3_SovietIffTransponderDecoder(
122  DtExerciseConn* exConn,
123  DtObjClassDesc* classDesc);
124 
126  virtual ~DtMAKRPR3_SovietIffTransponderDecoder();
127 
129  DtMAKRPR3_SovietIffTransponderDecoder(const DtMAKRPR3_SovietIffTransponderDecoder& orig);
130 
132  DtMAKRPR3_SovietIffTransponderDecoder& operator=(const DtMAKRPR3_SovietIffTransponderDecoder& orig);
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 
150 class DT_DLL_VL DtMAKRPR3_SovietIffInterrogatorDecoder : public DtSovietIffDecoder
151 {
152 public:
154  DtMAKRPR3_SovietIffInterrogatorDecoder(
155  DtExerciseConn* exConn,
156  DtObjClassDesc* classDesc);
157 
159  virtual ~DtMAKRPR3_SovietIffInterrogatorDecoder();
160 
162  DtMAKRPR3_SovietIffInterrogatorDecoder(const DtMAKRPR3_SovietIffInterrogatorDecoder& orig);
163 
165  DtMAKRPR3_SovietIffInterrogatorDecoder& operator=(const DtMAKRPR3_SovietIffInterrogatorDecoder& orig);
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: exerciseConnDIS.h:62
#define DT_DLL_VL
Definition: vlMachineTypes.h:108

Document ID: Generated on Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)