VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
stateRepository.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
12 #include <vlutil/vlMachineTypes.h>
13 #include <vl/objectId.h>
14 #include <vl/hlaObject.h>
15 
16 #include <iosfwd>
17 #include <map>
18 
19 #ifdef DtDIS
21 #endif
22 
23 #ifdef DtHLA
25 {
26 public:
27 
28  DtGenericAttributeInfo() : wasUpdated(false) {}
30  : handle(other.handle)
31  , buffer(other.buffer)
32  , wasUpdated(other.wasUpdated){}
33 
35 
36  RTI::AttributeHandle handle;
37  std::vector<char> buffer;
38  bool wasUpdated;
39 };
40 #endif
41 
47 {
48 public:
49 
52 
55 
57  virtual ~DtStateRepository();
58 
60  DtStateRepository& operator=(const DtStateRepository& orig);
61 
63  virtual DtStateRepository* clone(bool copy = false) const;
64 
66  virtual void printData() const;
67 
69  virtual void printDataToStream(std::ostream& stream) const;
70 
73 #if DtHLA
74  virtual void setGlobalId(const DtString& id);
75  virtual const DtString& globalId() const;
76 #elif DtDIS
77  virtual void setGlobalId(const DtGlobalObjectDesignator& id);
78  virtual const DtGlobalObjectDesignator& globalId() const;
79 #endif
80 
81 #if DtHLA
82 
85  virtual void setLocalId(const DtObjectId& id);
86  virtual const DtObjectId& localId() const;
87 
88 #endif
89 
90 
91 #ifdef DtDIS
92 
93 
95  virtual void setAttributeRecords(const std::vector<DtStandardVariableRecord*>& records);
96  virtual const std::vector<DtStandardVariableRecord*> attributeRecords(unsigned int recordType = 0) const;
97  virtual void getAttributeRecords(std::vector<DtStandardVariableRecord*>& vec, unsigned int recordType = 0) const;
98  virtual void addAttributeRecord( DtStandardVariableRecord* record );
99  virtual void clearAttributeRecords();
100  // Set the records. This is used internally by VR-Link in reflected lists. Not necessary for local objects
101  virtual void setAttributeRecords(const std::vector<DtStandardVariableRecord*>& records, const DtSimulationAddress& address);
103  virtual void setSimAddr(const DtSimulationAddress& id);
104  virtual const DtSimulationAddress& simAddr() const;
105 #endif
106 
107 #ifdef DtHLA
108  // The following functions are related to unknown attribute encoding and decoding.
109 
111  virtual bool publishesAttribute(const RTI::AttributeHandle& val) const;
112 
114  virtual void setAttributeByHandle(const RTI::AttributeHandle& attrHdl, const char* attrValue, unsigned size);
115 
120  virtual const char* getAttributeByHandle(const RTI::AttributeHandle& attrHdl, unsigned& size) const;
121 
123  virtual void setAttributeByName(const DtString& attrName, const char* attrValue, unsigned size, DtHlaObject* hlaObj);
124 
127  virtual const char* getAttributeByName(const DtString& attrName, unsigned& size, DtHlaObject* hlaObj) const;
128 
129 
134  virtual const char* getAttributeByHandleIfUpdated(const RTI::AttributeHandle& attrHdl, unsigned& size) const;
135 
136 #endif
137 
138 
139 #ifdef DtDIS
140  virtual unsigned int numberOfAttributeRecords() const;
141 #endif
142 
143 #ifdef DtHLA
145 #elif DtDIS
146  DtGlobalObjectDesignator myGlobalId;
147 #endif
148 
149 #ifdef DtHLA
151 
153  std::map<RTI::AttributeHandle, DtGenericAttributeInfo*> myAttributesByHandle;
154 #endif
155 
156 #ifdef DtDIS
157  DtSimulationAddress myDefaultSimulationAddress;
158  std::map< DtSimulationAddress, std::vector < DtStandardVariableRecord* > > myRecordsMap;
159  static bool theAllowCoupledPdusFlag;
160 #endif
161 };
162 
163 DT_DLL_VL std::ostream & operator << (std::ostream &str, const DtStateRepository &sr);
164 

Document ID: Generated on Thu Feb 22 04:26:36 EST 2018 from SVN revision 186468
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)