VR-Link API Documentation for DIS
 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
24 class DT_DLL_VL DtGenericAttributeInfo
25 {
26 public:
27 
28  DtGenericAttributeInfo() : wasUpdated(false) {}
29  DtGenericAttributeInfo(const DtGenericAttributeInfo& other)
30  : handle(other.handle)
31  , buffer(other.buffer)
32  , wasUpdated(other.wasUpdated){}
33 
34  ~DtGenericAttributeInfo() {}
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 
117  virtual const char* getAttributeByHandle(const RTI::AttributeHandle& attrHdl, unsigned& size) const;
118 
120  virtual void setAttributeByName(const DtString& attrName, const char* attrValue, unsigned size, DtHlaObject* hlaObj);
121 
124  virtual const char* getAttributeByName(const DtString& attrName, unsigned& size, DtHlaObject* hlaObj) const;
125 
126 
129  virtual const char* getAttributeByHandleIfUpdated(const RTI::AttributeHandle& attrHdl, unsigned& size) const;
130 
131 #endif
132 
133 
134 #ifdef DtDIS
135  virtual unsigned int numberOfAttributeRecords() const;
136 #endif
137 
138 #ifdef DtHLA
139  DtString myGlobalId;
140 #elif DtDIS
142 #endif
143 
144 #ifdef DtHLA
145  DtObjectId myLocalId;
146 
148  std::map<RTI::AttributeHandle, DtGenericAttributeInfo*> myAttributesByHandle;
149 #endif
150 
151 #ifdef DtDIS
153  std::map< DtSimulationAddress, std::vector < DtStandardVariableRecord* > > myRecordsMap;
154 #endif
155 };
156 
157 DT_DLL_VL std::ostream & operator << (std::ostream &str, const DtStateRepository &sr);
158 

Document ID: Generated on Wed Jan 7 13:31:29 EST 2015 from SVN revision 149162
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)