VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pduWithAttributeRecordSets.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #pragma once
7 
8 #if DtDIS
9 
10 #include <map>
11 #include <memory>
13 #include <vlutil/vlMachineTypes.h>
14 #include <vl/attributeRecordSet.h>
15 #include <vl/pdu.h>
17 
18 typedef std::map<DtEntityIdentifier, DtAttributeRecordSet> DtAttributeRecordSetMap;
19 
20 #define MULTIPLES_PRESENT 0
21 
23 {
24 public:
25 
28 
31 
34 
37 
39  virtual void printToStream(std::ostream& stream) const;
40 
42  virtual void printRecordSets(bool printEntityObjectId = false) const;
43 
45  virtual void printRecordSetsToStream(std::ostream& stream, bool printEntityObjectId = false) const;
46 
51  virtual void addRecord(std::auto_ptr<DtStandardVariableRecord> record,
53 
58  virtual void removeRecord(unsigned int index,
60 
62  virtual void clearRecordSet(const DtEntityIdentifier& id = DtEntityIdentifier::nullId());
63 
65  virtual void clearAllRecordSets();
66 
68  virtual std::vector<DtEntityIdentifier> recordSetIdentifiers() const;
69 
72  virtual void getRecordSetIdentifiers(std::vector<DtEntityIdentifier>& entityIdVector) const;
73 
75  virtual const DtStandardVariableRecordPtrVector& records(const DtEntityIdentifier& id = DtEntityIdentifier::nullId()) const;
76 
78  virtual const DtAttributeRecordSet& recordSet( const DtEntityIdentifier& id ) const;
79 
81  virtual const DtStandardVariableRecordPtrVector allRecords() const;
82 
84  virtual unsigned int numberOfRecords() const;
85 
87  virtual unsigned int numberOfRecords(const DtEntityIdentifier& id) const;
88 
90  virtual bool containsStandardRecordSets() const;
91 
93  virtual const DtSimulationAddress& attributePduSimulationAddress() const;
95  virtual void setAttributePduSimulationAddress(const DtSimulationAddress& addr);
96 
98  virtual void encode();
99 
101  virtual void decode(DtPduFactory* pduFactory = 0);
102 
104  virtual unsigned int attributeRecordSetsNetSize() const;
105 
107  virtual unsigned int recordSetsNetSize() const;
108 
110  virtual void setStandardVariableRecordFactory(DtStandardVariableRecordFactory* factory);
111  virtual DtStandardVariableRecordFactory* standardVariableRecordFactory() const;
112 
114  virtual unsigned int numberOfRecordSets() const;
115 
117  virtual const DtAttributeRecordSetMap& attributeRecordSetMap() const;
118 
120  virtual int computeMasterAttributeRecordType() const;
121 
122  virtual void setAttributeStrategy(DtAttributePduStrategy strat);
123  virtual DtAttributePduStrategy attributePduStrategy() const;
124 
125  virtual bool shouldAttributePduBeCoupled() const;
126 
127 protected:
128 
131  virtual void deepAttributeRecordSetMapCopy(const DtAttributeRecordSetMap& orig);
132  virtual void printRecordSetToStream(const DtEntityIdentifier& id, std::ostream& stream ) const;
141 
143 
144  protected:
145 
147 
148 };
149 
150 
151 
152 #endif
The DtPduDecoder class provides a base class for all DIS decoders.
Definition: pduDecoder.h:18
virtual void encode()
Encode method.
Definition: pduWithAttributeRecordSets.h:22
static const DtEntityIdentifier & nullId()
Returns a reference to an instance of 0:0:0.
A DtSimulationAddress is used in DIS to identify a particular simulator.
Definition: simulationAddress.h:29
DtStandardVariableRecordFactory * mySVRFactory
Definition: pduWithAttributeRecordSets.h:137
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
The DtPduEncoder class provides a base class for all DIS encoders.
Definition: pduEncoder.h:18
class DtPduFactory:
Definition: pduFactory.h:38
std::map< DtEntityIdentifier, DtAttributeRecordSet > DtAttributeRecordSetMap
Definition: pduWithAttributeRecordSets.h:18
DtPduDecoder * myAttributeDecoder
Definition: pduWithAttributeRecordSets.h:138
virtual void decode(DtPduFactory *pduFactory)
Decode method.
virtual bool shouldAttributePduBeCoupled() const
DtPduEncoder * myAttributeEncoder
Definition: pduWithAttributeRecordSets.h:139
DtAttributePduStrategy myAttributePduStrategy
Definition: pduWithAttributeRecordSets.h:142
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
DtAttributePduStrategy
Definition: vlAttributePduStrategy.h:16
std::vector< DtStandardVariableRecord * > DtStandardVariableRecordPtrVector
Definition: standardVariableRecord.h:82
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
Definition: attributeRecordSet.h:11
bool isRecordSetOwned
Definition: pduWithAttributeRecordSets.h:135
DtAttributeRecordSetMap myAttributeRecordSetMap
The Map which holds the Record Sets (Set of Record Sets) where the Entity Identifier is the key...
Definition: pduWithAttributeRecordSets.h:134
DtSimulationAddress myAttributePduOriginatingSimulationAddress
Definition: pduWithAttributeRecordSets.h:140
bool isPduExtending
Definition: pduWithAttributeRecordSets.h:136
virtual void printToStream(std::ostream &stream) const
Print the contents of the PDU by calling printHeaderToStream and printDataToStream.
DtPdu & operator=(const DtPdu &pdu)
Assignment operator.
Definition: standardVariableRecordFactory.h:19
This file contains typedefs for machine dependant types.
static const DtAttributeRecordSet theEmptyAttributeRecordSet
Definition: pduWithAttributeRecordSets.h:146

Document ID: Generated on Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)