MAK Data Logger API Documentation for DIS
onlineFomDesc.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
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 "lgrHlaAttribute.h"
17 #include "virtualConstructor.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 
63  virtual DtBaseObjClassDesc* objDesc(RTI::ObjectClassHandle);
64  virtual const DtBaseObjClassDesc* objDesc(RTI::ObjectClassHandle) const;
66 
68 
69  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 
115  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

Document ID: Generated on Thu Apr 10 18:53:01 EDT 2014 from SVN revision 138105
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)