MAK Data Logger API Documentation for HLA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
baseFomDesc13.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 baseFomDesc13_H_
10 #define baseFomDesc13_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 <lgrCore/lgrSimDriver.h>
21 
22 #include <lgrUtil/leTypes.h>
23 #include <vector>
24 
25 class DtFom;
26 
27 namespace MAKLogger
28 {
29  struct DtGenFomDesc
30  {
36  };
37  const size_t DtGenFomDescSz = sizeof( DtGenFomDesc );
38 
39  struct DtGenObjDesc
40  {
43  DtLeU32 flags;
48  };
49  const size_t DtGenObjDescSz = sizeof( DtGenObjDesc );
50 
51 
52  struct DtGenAttrDesc
53  {
55  DtLeU32 flags;
57  char name[4];
58  };
59  const size_t DtGenAttrDescSz = sizeof( DtGenAttrDesc ) - 4;
60 
61 
62  struct DtSubscriptionMap
63  {
64  int size;
65  int objSubsOnNum;
66  int objSubsOnPos;
67  int objSubsOffNum;
68  int objSubsOffPos;
69  int intSubsOnNum;
70  int intSubsOnPos;
71  int intSubsOffNum;
72  int intSubsOffPos;
73  };
74  const size_t DtSubscriptionMapSz = sizeof( DtSubscriptionMap );
75 
76  class DtLgrFom;
77  class DtBaseObjClassDesc;
78  class DtBaseInterClassDesc;
79 
87  class DT_DLL_LGRSIM DtBaseFomDesc
88  {
89  public:
90 
92  DT_VIRTUAL_CTR(DtBaseFomDesc,())
93 
94 
95  DT_VIRTUAL_COPY_ASSIGN(DtBaseFomDesc)
96 
97  virtual ~DtBaseFomDesc();
98 
99  public:
100 
101  virtual DtBaseObjClassDesc* addObjectClass(const DtBaseObjClassDesc&);
102  virtual DtBaseInterClassDesc* addInteractionClass(const DtBaseInterClassDesc&);
103 
104 
106  virtual int readFromFile( FILE* fp );
107  virtual int readFromFile64( int fd );
108 
110  virtual int writeToFile( FILE* fp ) const;
111  virtual int writeToFile64( int fd ) const;
112 
114  virtual int setFromSerialForm( const void* p );
115 
117  virtual char* serialize( int* pSize = 0 ) const;
118 
119  typedef std::vector<DtBaseObjClassDesc*>::iterator objectIterator;
120  typedef std::vector<DtBaseObjClassDesc*>::const_iterator const_objectIterator;
121 
122  typedef std::vector<DtBaseInterClassDesc*>::iterator interactionIterator;
123  typedef std::vector<DtBaseInterClassDesc*>::const_iterator const_interactionIterator;
124 
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 
185  virtual bool equivalent( const DtBaseFomDesc& other) const;
186 
189  virtual bool identical( const DtBaseFomDesc& other) const;
190 
192  virtual void setFilterByClass( const DtSubscriptionMap* map );
193 
195  virtual void setFilterAllObjectClasses();
196 
198  virtual void setFilterNoObjectClasses();
199 
201  virtual void setFilterAllInteractionClasses();
202 
204  virtual void setFilterNoInteractionClasses();
205 
207  virtual void empty();
208 
210  virtual void setObjectClassHeartbeatTime(const DtString& className, double time, bool includeSubclasses = false);
211 
214  virtual bool getObjectClassHeartbeatTime(const DtString& className, double& heartbeat) const;
215 
217  virtual bool objectClassHeartbeatInheritable(const DtString& className) const;
218 
220  virtual void setObjectClassTimeoutTime(const DtString& className, double time, bool includeSubclasses = false);
221 
224  virtual bool getObjectClassTimeoutTime(const DtString& className, double& timeout) const;
225 
227  virtual bool objectClassTimeoutInheritable(const DtString& className) const;
228 
230  virtual void initObjClasses();
235  virtual void initIntClasses();
237 
238  protected:
239 
241  bool processCommand(const char*command,char* tkn,const char* sep);
242 
244  virtual void deleteObjClasses();
245 
247  virtual void deleteIntClasses();
248 
250  void resetAll();
251 
253  void initFromSource( const DtBaseFomDesc& src );
254 
256  int unserialize( const char* bfr );
257 
258  protected:
259 
260  DtDynamicBuffer myDynBuf;
261 
262  typedef DtMultiKeyMap<DtString,DtLgrHlaHandle,DtBaseObjClassDesc*> ObjectMap;
263  typedef DtMultiKeyMap<DtString,DtLgrHlaHandle,DtBaseInterClassDesc*> InteractionMap;
264 
265  ObjectMap myObjectLookupMap;
266  InteractionMap myInteractionLookupMap;
267 
268  std::vector<DtBaseObjClassDesc*> myObjectClasses;
269  std::vector<DtBaseInterClassDesc*> myInteractionClasses;
270  std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord> myHeartbeatTimes;
271  std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord> myTimeoutTimes;
272 
273  protected:
274  static int theHashSize;
275  };
276 
277 
278  inline int DtBaseFomDesc::objectClassCount() const
279  {
280  return (int)myObjectClasses.size();
281  }
282 
283  inline int DtBaseFomDesc::interactionClassCount() const
284  {
285  return (int)myInteractionClasses.size();
286  }
287 
288 
289  inline int DtBaseFomDesc::count() const
290  {
291  return ( objectClassCount() + interactionClassCount() );
292  }
293 
294 }
295 
296 #endif
297 #endif
int size
Definition: baseFomDesc1516.h:65
int objSubsOffPos
Definition: baseFomDesc1516.h:69
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
DtU32 DtLgrHlaHandle
Logger Psuedo Handle type.
Definition: hlaTimeStampedAttr.h:22
int count() const
Get the total number of classes in the FOM (object and interaction)
Definition: baseFomDesc1516.h:285
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
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
Contains MAKLogger::DtMultiKeyMap class.
int objSubsOnPos
Definition: baseFomDesc1516.h:67
DtLeU32 flags
Definition: baseFomDesc1516.h:54
DtLeInt32 size
Definition: baseFomDesc1516.h:29
Contains MAKLogger::DtLgrSimDriver subclass of MAKLogger::DtLgrCommandHandler.
class &#39;DtDynamicBuffer&#39;
Definition: lgrDynStrings.h:169
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
const size_t DtGenAttrDescSz
Definition: baseFomDesc1516.h:60
const size_t DtGenObjDescSz
Definition: baseFomDesc1516.h:48
DtLeInt32 bufObjClassesSz
Definition: baseFomDesc1516.h:31
int intSubsOffNum
Definition: baseFomDesc1516.h:72
DtLeInt32 baseNameOff
Definition: baseFomDesc1516.h:44
DtLeInt32 numAttrs
Definition: baseFomDesc1516.h:45
int interactionClassCount() const
Get the number of interaction classes in the FOM.
Definition: baseFomDesc1516.h:279
DtLeInt32 size
Definition: baseFomDesc1516.h:55
int intSubsOnNum
Definition: baseFomDesc1516.h:70
DtLeU32 handle
Definition: baseFomDesc1516.h:40
DtLeInt32 numObjClasses
Definition: baseFomDesc1516.h:30
int intSubsOnPos
Definition: baseFomDesc1516.h:71
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)