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 #ifdef DtDIS
17 #include <vl/attributeRecordSet.h>
18 #endif
19 
20 #include <iosfwd>
21 #include <map>
23 
24 typedef DtStateRepositoryExtension* (*DtSrExtCreatorFnc)();
25 
26 
27 #ifdef DtHLA
29 {
30 public:
31 
32  DtGenericAttributeInfo() : wasUpdated(false) {}
34  : handle(other.handle)
35  , buffer(other.buffer)
36  , wasUpdated(other.wasUpdated){}
37 
39 
40  RTI::AttributeHandle handle;
41  std::vector<char> buffer;
42  bool wasUpdated;
43 };
44 #endif
45 
51 {
52 public:
53 
56 
59 
61  virtual ~DtStateRepository();
62 
64  DtStateRepository& operator=(const DtStateRepository& orig);
65 
67  virtual DtStateRepository* clone(bool copy = false) const;
68 
70  virtual void printData() const;
71 
73  virtual void printDataToStream(std::ostream& stream) const;
74 
77 #if DtHLA
78  virtual void setGlobalId(const DtString& id);
79  virtual const DtString& globalId() const;
80 #elif DtDIS
81  virtual void setGlobalId(const DtGlobalObjectDesignator& id);
82  virtual const DtGlobalObjectDesignator& globalId() const;
83 #endif
84 
85 #if DtHLA
86 
89  virtual void setLocalId(const DtObjectId& id);
90  virtual const DtObjectId& localId() const;
91 
92 #endif
93 
94 
95 #ifdef DtDIS
96 
98 
100 
101 
103  virtual void setAttributeRecords(const DtAttributeRecordSet& records);
104 
106  virtual void setAttributeRecords(const DtStandardVariableRecordPtrVector& records);
107 
109  virtual const DtAttributeRecordSet& attributeRecordSet() const;
110 
112  virtual DtAttributeRecordSet& attributeRecordSet();
113 
116  virtual const DtStandardVariableRecordPtrVector& attributeRecords() const;
117 
120  virtual const DtStandardVariableRecordPtrVector& attributeRecords(unsigned int recordType) const;
121 
124  virtual DtStandardVariableRecord* attributeRecord(unsigned int recordType) const;
125 
128  virtual int removeAttributeRecord(unsigned int recordType, bool removeAll = true);
129 
132  virtual DtStandardVariableRecordPtrVector& getAttributeRecords(unsigned int recordType,
134 
137  virtual DtStandardVariableRecordPtrVector& getAttributeRecords(DtStandardVariableRecordPtrVector& vec) const;
138 
140  virtual void addAttributeRecord( DtStandardVariableRecord* record );
141 
143  virtual void addAttributeRecord(std::auto_ptr<DtStandardVariableRecord> record);
144 
146  virtual void clearAttributeRecords();
148 #endif
149 
152  static bool addStateRepositoryExtension(DtString srExtName, DtSrExtCreatorFnc fnc);
155 
158  virtual DtStateRepositoryExtension* stateRepositoryExtension(DtString srExtName) const;
159 
161  virtual std::vector<DtString> stateRepositoryExtensionNames() const;
162 
163  virtual void setStateRepositoryExtensions(std::map<DtString, DtStateRepositoryExtension*> extensions);
164 
165  virtual const std::map<DtString, DtStateRepositoryExtension*> stateRepositoryExtensions() const;
166 
168 #ifdef DtHLA
169  // The following functions are related to unknown attribute encoding and decoding.
170 
172  virtual bool publishesAttribute(const RTI::AttributeHandle& val) const;
173 
175  virtual void setAttributeByHandle(const RTI::AttributeHandle& attrHdl, const char* attrValue, unsigned size);
176 
181  virtual const char* getAttributeByHandle(const RTI::AttributeHandle& attrHdl, unsigned& size) const;
182 
184  virtual void setAttributeByName(const DtString& attrName, const char* attrValue, unsigned size, DtHlaObject* hlaObj);
185 
188  virtual const char* getAttributeByName(const DtString& attrName, unsigned& size, DtHlaObject* hlaObj) const;
189 
190 
195  virtual const char* getAttributeByHandleIfUpdated(const RTI::AttributeHandle& attrHdl, unsigned& size) const;
196 
197 #endif
198 
199 
200 #ifdef DtDIS
201  virtual unsigned int numberOfAttributeRecords() const;
202 #endif
203 
204 #ifdef DtHLA
206 #elif DtDIS
207  DtGlobalObjectDesignator myGlobalId;
208 #endif
209 
210 #ifdef DtHLA
212 
214  std::map<RTI::AttributeHandle, DtGenericAttributeInfo*> myAttributesByHandle;
215 #endif
216 
217 #ifdef DtDIS
218  DtAttributeRecordSet myAttributeRecords;
219  mutable DtStandardVariableRecordPtrVector myReturnedRecords;
220 #endif
221  typedef std::map<DtString, DtStateRepositoryExtension*> DtStateRepositoryExtensionMap;
223 
224  static std::map<DtString, DtSrExtCreatorFnc> theStateRepositoryExtensionCreatorMap;
225 };
226 
227 DT_DLL_VL std::ostream & operator << (std::ostream &str, const DtStateRepository &sr);
228 
Contains the DtObjectId class declaration.
static std::map< DtString, DtSrExtCreatorFnc > theStateRepositoryExtensionCreatorMap
Definition: stateRepository.h:224
std::map< DtString, DtStateRepositoryExtension * > DtStateRepositoryExtensionMap
Definition: stateRepository.h:221
DtStateRepositoryExtension *(* DtSrExtCreatorFnc)()
Definition: stateRepository.h:24
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
std::ostream & operator<<(std::ostream &os, const Dt3dChord &chord)
This file provides a declaration of the class DtHlaObject.
This file contains typedefs used to represent objects in a protocol neutral way.
Definition: stateRepository.h:28
bool wasUpdated
Definition: stateRepository.h:42
Instances of DtHlaObject are used to represent HLA objects which are communicated across the network...
Definition: hlaObject.h:56
RTI::AttributeHandle handle
Definition: stateRepository.h:40
DtString myGlobalId
Definition: stateRepository.h:205
std::vector< char > buffer
Definition: stateRepository.h:41
~DtGenericAttributeInfo()
Definition: stateRepository.h:38
std::vector< DtStandardVariableRecord * > DtStandardVariableRecordPtrVector
Definition: standardVariableRecord.h:82
DtStateRepository is an abstract base class for maintaining state for an object.
Definition: stateRepository.h:50
Definition: attributeRecordSet.h:11
Definition: stateRepositoryExtension.h:22
DtStateRepositoryExtensionMap myStateRepositoryExtensionMap
Definition: stateRepository.h:222
static const xmlChar * attrValue
Definition: xmlFedTags.h:154
DtObjectId myLocalId
Definition: stateRepository.h:211
DtObjectId instances are used to represent RTI::ObjectInstances in VR-Link.
Definition: objectId.h:38
static const xmlChar * attrName
Definition: xmlFedTags.h:117
DtGenericAttributeInfo(const DtGenericAttributeInfo &other)
Definition: stateRepository.h:33
std::map< RTI::AttributeHandle, DtGenericAttributeInfo * > myAttributesByHandle
Attributes by handle.
Definition: stateRepository.h:214
Definition: standardVariableRecord.h:22
Instances of DtString are used to represent strings.
Definition: vlString.h:29
DtGenericAttributeInfo()
Definition: stateRepository.h:32
This file contains typedefs for machine dependant types.

Document ID: Generated on Mon Apr 25 03:39:01 EDT 2022 from SVN revision 242502
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)