MAK Data Logger API Documentation for HLA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
baseFomDesc1516.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #ifndef baseFomDesc1516_H_
10 #define baseFomDesc1516_H_
11 
12 #if DtHLA & DtHLA_1516
13 
14 #include <lgrSim/lgrSim.h>
15 #include <lgrSim/lgrDynStrings.h>
16 #include <lgrSim/lgrHlaAttribute.h>
17 #include <lgrUtil/multiKeyMap.h>
20 #include <lgrUtil/leTypes.h>
21 #include <lgrCore/lgrSimDriver.h>
22 
23 class DtFom;
24 
25 namespace MAKLogger
26 {
27  struct DtGenFomDesc
28  {
34  };
35  const size_t DtGenFomDescSz = sizeof( DtGenFomDesc );
36 
37  struct DtGenObjDesc
38  {
47  };
48  const size_t DtGenObjDescSz = sizeof( DtGenObjDesc );
49 
50 
52  {
59  };
60  const size_t DtGenAttrDescSz = sizeof( DtGenAttrDesc );
61 
62 
64  {
65  int size;
74  };
75  const size_t DtSubscriptionMapSz = sizeof( DtSubscriptionMap );
76 
77  class DtLgrFom;
78  class DtBaseObjClassDesc;
80 
89  {
90  public:
91 
94 
95 
97 
98  virtual ~DtBaseFomDesc();
99 
100  public:
101 
102  virtual DtBaseObjClassDesc* addObjectClass(const DtBaseObjClassDesc&);
103  virtual DtBaseInterClassDesc* addInteractionClass(const DtBaseInterClassDesc&);
104 
105 
107  virtual int readFromFile( FILE* fp );
108  virtual int readFromFile64( int fd );
109 
111  virtual int writeToFile( FILE* fp ) const;
112  virtual int writeToFile64( int fd ) const;
113 
115  virtual int setFromSerialForm( const void* p );
116 
118  virtual char* serialize( int* pSize = 0 ) const;
119 
120  typedef std::vector<DtBaseObjClassDesc*>::iterator objectIterator;
121  typedef std::vector<DtBaseObjClassDesc*>::const_iterator const_objectIterator;
122 
123  typedef std::vector<DtBaseInterClassDesc*>::iterator interactionIterator;
124  typedef std::vector<DtBaseInterClassDesc*>::const_iterator const_interactionIterator;
125 
127  objectIterator obj_begin();
129  const_objectIterator obj_begin() const;
131 
133  objectIterator obj_end();
135  const_objectIterator obj_end() const;
137 
139  interactionIterator inter_begin();
141  const_interactionIterator inter_begin() const;
143 
145  interactionIterator inter_end();
147  const_interactionIterator inter_end() const;
149 
151  virtual DtBaseObjClassDesc* objDesc( unsigned int hand );
153  virtual const DtBaseObjClassDesc* objDesc( unsigned int hand ) const;
155 
157  virtual DtBaseObjClassDesc* objDesc( const DtString& _name );
159  virtual const DtBaseObjClassDesc* objDesc( const DtString& _name ) const;
161 
163  virtual DtBaseInterClassDesc* interDesc( unsigned int hand );
165  virtual const DtBaseInterClassDesc* interDesc( unsigned int hand ) const;
167 
169  virtual DtBaseInterClassDesc* interDesc( const DtString& _name );
171  virtual const DtBaseInterClassDesc* interDesc( const DtString& _name ) const;
173 
175  inline int objectClassCount() const;
176 
178  inline int interactionClassCount() const;
179 
181  inline int count() const;
182 
184  virtual bool equivalent( const DtBaseFomDesc& other ) const;
185 
187  virtual bool identical( const DtBaseFomDesc& other ) const;
188 
190  virtual void setFilterByClass( const DtSubscriptionMap* map );
191 
193  virtual void setFilterAllObjectClasses();
194 
196  virtual void setFilterNoObjectClasses();
197 
199  virtual void setFilterAllInteractionClasses();
200 
202  virtual void setFilterNoInteractionClasses();
203 
205  virtual void empty();
206 
208  virtual void initObjClasses();
213  virtual void initIntClasses();
215 
217  virtual void setObjectClassHeartbeatTime(const DtString& className, double time, bool includeSubclasses = false);
218 
221  virtual bool getObjectClassHeartbeatTime(const DtString& className, double& heartbeat) const;
222 
224  virtual bool objectClassHeartbeatInheritable(const DtString& className) const;
225 
227  virtual void setObjectClassTimeoutTime(const DtString& className, double time, bool includeSubclasses = false);
228 
231  virtual bool getObjectClassTimeoutTime(const DtString& className, double& timeout) const;
232 
234  virtual bool objectClassTimeoutInheritable(const DtString& className) const;
235 
236  protected:
237 
239  bool processCommand(const char*command,char* tkn,const char* sep);
240 
242  virtual void deleteObjClasses();
243 
245  virtual void deleteIntClasses();
246 
248  void resetAll();
249 
251  void initFromSource( const DtBaseFomDesc& src );
252 
254  int unserialize( const char* bfr );
255 
256  protected:
257 
260 
263 
264  std::vector<DtBaseObjClassDesc*> myObjectClasses;
265  std::vector<DtBaseInterClassDesc*> myInteractionClasses;
266  std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord> myHeartbeatTimes;
267  std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord> myTimeoutTimes;
268 
269  protected:
270  static int theHashSize;
271  };
272 
273 
275  {
276  return (int)myObjectClasses.size();
277  }
278 
280  {
281  return (int)myInteractionClasses.size();
282  }
283 
284 
285  inline int DtBaseFomDesc::count() const
286  {
287  return ( objectClassCount() + interactionClassCount() );
288  }
289 
290 
291 }
292 
293 #endif
294 #endif
std::vector< DtBaseObjClassDesc * >::iterator objectIterator
Definition: baseFomDesc1516.h:120
int size
Definition: baseFomDesc1516.h:65
int objSubsOffPos
Definition: baseFomDesc1516.h:69
DtMultiKeyMap< DtString, DtLgrHlaHandle, DtBaseInterClassDesc * > InteractionMap
Definition: baseFomDesc1516.h:259
const size_t DtSubscriptionMapSz
Definition: baseFomDesc1516.h:75
DtLeInt32 numIntClasses
Definition: baseFomDesc1516.h:32
Defines IMPORT/EXPORT macros for lgrSim library.
Contains Little Endian Types.
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21
std::vector< DtBaseObjClassDesc * >::const_iterator const_objectIterator
Definition: baseFomDesc1516.h:121
Definition: baseFomDesc1516.h:37
Definition: baseFomDesc1516.h:63
static int theHashSize
Definition: baseFomDesc1516.h:270
int count() const
Get the total number of classes in the FOM (object and interaction)
Definition: baseFomDesc1516.h:285
int objectClassCount() const
Get the number of object classes in the FOM.
Definition: baseFomDesc1516.h:274
Contains Legacy code.
#define DT_VIRTUAL_CTR(CLASS_NAME, ARG_TYPES_LIST)
Declare a Virtual Constructor Create using DT_VIRTUAL_CTR(CLASS_NAME,ARG_TYPES_LIST) Where CLASS_NAME...
Definition: virtualConstructor.h:34
DtLeInt32 attrsOff
Definition: baseFomDesc1516.h:46
DtLeInt32 size
Definition: baseFomDesc1516.h:39
An Fom Object Class descriptions.
Definition: baseObjDesc1516.h:33
Contains MAKLogger::DtLgrVariableLengthData class.
int objSubsOnNum
Definition: baseFomDesc1516.h:66
int intSubsOffPos
Definition: baseFomDesc1516.h:73
DtLeU32 flags
Definition: baseFomDesc1516.h:41
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
int objSubsOffNum
Definition: baseFomDesc1516.h:68
DtLeInt32 bufIntClassesSz
Definition: baseFomDesc1516.h:33
Contains MAKLogger::DtLgrHlaHandle typedef and MAKLogger::DtLgrValueReference and MAKLogger::DtLgrVal...
Little Endian unsigned 32-bit quantity.
Definition: leTypes.h:52
ObjectMap myObjectLookupMap
Definition: baseFomDesc1516.h:261
Contains MAKLogger::DtMultiKeyMap class.
int objSubsOnPos
Definition: baseFomDesc1516.h:67
std::map< DtString, DtLgrSimDriver::HeartbeatTimeRecord > myHeartbeatTimes
Definition: baseFomDesc1516.h:266
DtLeInt32 nameLen
Definition: baseFomDesc1516.h:57
DtLeU32 flags
Definition: baseFomDesc1516.h:54
DtLeInt32 size
Definition: baseFomDesc1516.h:29
Contains MAKLogger::DtLgrSimDriver subclass of MAKLogger::DtLgrCommandHandler.
std::map< DtString, DtLgrSimDriver::HeartbeatTimeRecord > myTimeoutTimes
Definition: baseFomDesc1516.h:267
std::vector< DtBaseObjClassDesc * > myObjectClasses
Definition: baseFomDesc1516.h:264
DtLeInt32 codeLen
Definition: baseFomDesc1516.h:42
DtLeU32 handle
Definition: baseFomDesc1516.h:53
const size_t DtGenFomDescSz
Definition: baseFomDesc1516.h:35
#define DT_VIRTUAL_COPY_ASSIGN(CLASS_NAME)
Declare a Virtual Copy Constructor Create using DT_VIRTUAL_COPY_CTR(CLASS_NAME) Where CLASS_NAME = th...
Definition: virtualConstructor.h:93
Little endian signed 32-bit quantity.
Definition: leTypes.h:130
DtLeInt32 nameOff
Definition: baseFomDesc1516.h:58
const size_t DtGenAttrDescSz
Definition: baseFomDesc1516.h:60
const size_t DtGenObjDescSz
Definition: baseFomDesc1516.h:48
InteractionMap myInteractionLookupMap
Definition: baseFomDesc1516.h:262
DtLeInt32 bufObjClassesSz
Definition: baseFomDesc1516.h:31
int intSubsOffNum
Definition: baseFomDesc1516.h:72
DtLeInt32 baseNameOff
Definition: baseFomDesc1516.h:44
DtLeInt32 numAttrs
Definition: baseFomDesc1516.h:45
std::vector< DtBaseInterClassDesc * >::iterator interactionIterator
Definition: baseFomDesc1516.h:123
std::vector< DtBaseInterClassDesc * >::const_iterator const_interactionIterator
Definition: baseFomDesc1516.h:124
Definition: baseFomDesc1516.h:51
Represents a HLA 1516 Fom Interaction class descriptions.
Definition: baseIntDesc1516.h:33
int interactionClassCount() const
Get the number of interaction classes in the FOM.
Definition: baseFomDesc1516.h:279
DtLeInt32 size
Definition: baseFomDesc1516.h:55
DtMultiKeyMap< DtString, DtLgrHlaHandle, DtBaseObjClassDesc * > ObjectMap
Definition: baseFomDesc1516.h:258
Definition: baseFomDesc1516.h:27
int intSubsOnNum
Definition: baseFomDesc1516.h:70
DtLeU32 handle
Definition: baseFomDesc1516.h:40
DtLeInt32 codeLen
Definition: baseFomDesc1516.h:56
DtLeInt32 numObjClasses
Definition: baseFomDesc1516.h:30
int intSubsOnPos
Definition: baseFomDesc1516.h:71
std::vector< DtBaseInterClassDesc * > myInteractionClasses
Definition: baseFomDesc1516.h:265
class DtBaseFomDesc:
Definition: baseFomDesc1516.h:88
DtLeInt32 ownNameOff
Definition: baseFomDesc1516.h:43

Document ID: Generated on Thu Dec 18 15:35:09 EST 2025 from SVN revision 282494
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)