MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
onlineFomDesc.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef onlineFomDesc_H_
11 #define onlineFomDesc_H_
12 
13 #if DtHLA
14 
15 #include "baseFomDesc.h"
16 #include <lgrSim/lgrHlaAttribute.h>
18 
19 #include <vl/rtiCompatibility.h>
20 #include <vl/rtiNamespace.h>
21 #include <set>
22 
23 class DtExerciseConn;
24 class DtObjClassDesc;
25 class DtInterClassDesc;
26 class DtFomMapper;
27 
28 namespace MAKLogger
29 {
30 
34  class DT_DLL_LGRSIM DtLgrOnlineFomDesc : public DtBaseFomDesc
35  {
36  public:
37 
39  DT_VIRTUAL_CTR_DEFAULTS(DtLgrOnlineFomDesc,
40  (DtExerciseConn* exconn, const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>* heartbeatTimes,
41  const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>* timeoutTimes),
42  (DtExerciseConn* exconn, const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>* heartbeatTimes=0,
43  const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>* timeoutTimes=0))
44 
45 
46  DT_VIRTUAL_COPY_ASSIGN(DtLgrOnlineFomDesc)
47 
48  virtual ~DtLgrOnlineFomDesc();
49 
50  public:
51 
53  inline RTI::RTIambassador* const rtiAmb() const;
54 
56  virtual DtBaseObjClassDesc* addObjectClass(const DtBaseObjClassDesc&);
57 
59  virtual DtBaseInterClassDesc* addInteractionClass(const DtBaseInterClassDesc&);
60 
62  virtual DtBaseObjClassDesc* objDesc(RTI::ObjectClassHandle);
64  virtual const DtBaseObjClassDesc* objDesc(RTI::ObjectClassHandle) const;
66 
68  virtual DtBaseInterClassDesc* interDesc( RTI::InteractionClassHandle );
70  virtual const DtBaseInterClassDesc* interDesc( RTI::InteractionClassHandle) const;
72 
74  virtual bool isEntity(RTI::ObjectClassHandle handle) const;
75 
77  virtual bool isAggregate(RTI::ObjectClassHandle handle ) const;
78 
80  virtual double heartbeatTime(RTI::ObjectClassHandle handle ) const;
81 
83  virtual double timeoutTime(RTI::ObjectClassHandle handle ) const;
84 
85  protected:
86 
88  void setFomMapperLists(DtFomMapper*);
89 
91  void setFromFom( DtFom& fom );
92 
94  virtual void deleteObjClasses();
95 
97  virtual void deleteIntClasses();
98 
100  void addObjectFromFom( DtObjClassDesc* dsc
101 #if DtHLA_1516
102  , DtDynamicBuffer &dynBfr, DtLgrHlaHandle objectHandle
103 #endif
104  );
105 
107  void addInteractionFromFom( DtInterClassDesc* item
108 #if DtHLA_1516
109  , DtDynamicBuffer &dynBfr, DtLgrHlaHandle interHandle
110 #endif
111  );
112 
113 #if DtHLA_1516
114  void addAttributeFromFom( RTI::AttributeHandleSet::const_iterator attrIter,
116  RTI::ObjectClassHandle classHandle, DtDynamicBuffer &dynBfr,
117  unsigned long lgrAttrHandle, DtBaseObjClassDesc* objDsc );
118 
120  void addParameterFromFom( RTI::ParameterHandleSet::const_iterator paramIter,
121  RTI::InteractionClassHandle classHandle, DtDynamicBuffer &dynBfr,
122  unsigned long lgrParamHandle, DtBaseInterClassDesc* intDsc );
123 #endif
124 
125  protected:
126 
127  typedef std::map<DtLgrVariableLengthData,DtBaseObjClassDesc*> ObjectCodeMap;
128  typedef std::map<DtLgrVariableLengthData,DtBaseInterClassDesc*> InteractionCodeMap;
129 
130  ObjectCodeMap myObjectCodeLookupMap;
131  InteractionCodeMap myInteractionCodeLookupMap;
132 
133  typedef std::set<RTI::ObjectClassHandle> DtHandleSet;
134  DtHandleSet myEntityClassHandles;
135  DtHandleSet myAggregateClassHandles;
136  std::map<RTI::ObjectClassHandle, double> myHandleHeartbeats;
137  std::map<RTI::ObjectClassHandle, double> myHandleTimeouts;
138 
139  RTI::RTIambassador* myRtiAmb;
140  };
141 
142  inline RTI::RTIambassador* const DtLgrOnlineFomDesc::rtiAmb() const
143  {
144  return myRtiAmb;
145  }
146 
147 }
148 
149 #endif
150 
151 #endif
#define DT_VIRTUAL_CTR_DEFAULTS(CLASS_NAME, ARG_TYPES_LIST, ARG_DEFAULTS_LIST)
Declare a Virtual Constructor Create using DT_VIRTUAL_CTR_DEFAULTS(CLASS_NAME,ARG_TYPES_LIST,ARG_DEFAULTS_LIST) Where CLASS_NAME = the name of the class being declared Where ARG_TYPES_LIST = a list (ie in side parentheses) of comma seperated types Where ARG_DEFAULTS_LIST = a list (ie in side parentheses) of comma seperated types with default values specified.
Definition: virtualConstructor.h:63
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
Contains MAKLogger::DtLgrHlaHandle typedef and MAKLogger::DtLgrValueReference and MAKLogger::DtLgrVal...
class &#39;DtDynamicBuffer&#39;
Definition: lgrDynStrings.h:169
#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
Pull in the necessary MAKLogger::DtBaseFomDesc header.

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)