VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
attributePdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2013 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #pragma once
7 
10 
11 #if DtDIS
12 #include "vlutil/vlMachineTypes.h"
13 #include "vl/hostStructs.h"
14 #include <vl/packets/attributeP.h>
15 #include <vl/interaction.h>
16 
18 class DT_DLL_VL DtAttributePdu;
19 
20 typedef DtAttributePdu DtAttributeInteraction;
21 
22 typedef void (*DtAttributeInteractionCb)(DtAttributeInteraction *inter, void *usr);
23 
26 class DT_DLL_VL DtAttributePdu : public DtInteraction
27 {
28 public:
29 
30  DtAttributePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
31 
32  DtAttributePdu(const DtNetAttributePdu *initial,
33  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
34 
36  virtual ~DtAttributePdu();
37 
39  virtual void setOriginatingSimulationAddress(const DtSimulationAddress& address);
41  virtual const DtSimulationAddress& originatingSimulationAddress() const;
42 
44  virtual void setAttributeRecordPduType(DtPduKind pduType);
46  virtual DtPduKind attributeRecordPduType() const;
47 
49  virtual void setAttributeRecordProtocolVersion(DtProtocolFamily protocolFamily);
51  virtual DtProtocolFamily attributeRecordProtocolVersion() const;
52 
54  virtual void setMasterAttributeRecordType(DtDatumParam recordType);
56  virtual unsigned int masterAttributeRecordType() const;
57 
59  virtual void setActionCode(DtAttributeActionCode actionCode);
61  virtual DtAttributeActionCode actionCode() const;
62 
64  virtual int numberOfAttributeRecordSets() const;
65 
66  virtual void printData() const;
67  virtual void printDataToStream(std::ostream& stream) const;
68  virtual void printDataToString(DtString& str) const;
69 
70 public:
71 
72  static DtPdu *create(const DtNetPacket *initial,
73  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
74 
75  static void addCallback(DtExerciseConn *conn,
76  DtAttributeInteractionCb cb, void *usr);
77  static void removeCallback(DtExerciseConn *conn,
78  DtAttributeInteractionCb cb, void *usr);
79 
80  static DtAttributePdu *createFromDtPdu(const DtPduWithAttributeRecordSets* pdu, void* usrData = 0);
81 
82 
83 protected:
84 
86  static const int theStaticSize;
87 
88 protected:
89 
90 
91 protected:
92 
94  DtPduKind internalGetPduKind() const {return DtAttributePduKind;}
95 
97  virtual DtNetAttributePdu* netPduStruct() const;
98 
101  DtAttributePdu* self() const;
102 
103  DtSimulationAddress mySimulationAddress;
104  DtPduKind myAttributeRecordPduType;
105  DtProtocolFamily myAttributeRecordProtocolVersion;
106  unsigned int myMasterAttributeRecordType;
107  DtAttributeActionCode myActionCode;
108  // Number of Attribute Record Sets and Attribute Record Sets are contained in the
109  // base class DtPduWithAttributeRecordSets
110 };
111 
112 #endif
This file declares the class DtNetAttributePdu.
DtInteraction is an abstract base class for representing HLA interactions (or events) (as opposed to ...
Definition: interactionHLA.h:33
A DtSimulationAddress is used in DIS to identify a particular simulator.
Definition: simulationAddress.h:29
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:58
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: pduHeader.h:14
Definition: attributeP.h:18
DtAttributeActionCode
([UID 295]) - Attribute PDU Action Code
Definition: disEnums.h:3077
Definition: disEnums.h:317
static void removeCallback(DtExerciseConn *conn, const std::vector< DtString > *classes, DtReceiveInteractionCb cb, void *usr, DtDDMRegionSP region=DtDDMRegionSP())
virtual void printData() const
Print the interaction&#39;s data to DtInfo.
Definition: interactionHLA.h:349
This file is used as a convenience to group interaction concepts together.
virtual void printDataToStream(std::ostream &stream) const
Print the interaction&#39;s data to the stream.
Definition: interactionHLA.h:357
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
static void addCallback(DtExerciseConn *conn, const std::vector< DtString > *classes, DtReceiveInteractionCb cb, void *usr, DtDDMRegionSP region=DtDDMRegionSP())
Register/Deregister callback function cb with conn, on all interaction class name (char*) contained i...
DtProtocolFamily
([UID 5]) - Protocol Family
Definition: disEnums.h:349
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
DtDatumParam
([UID 66]) - Datum ID
Definition: disEnums.h:501
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
Instances of DtString are used to represent strings.
Definition: vlString.h:29
This file contains typedefs for machine dependant types.
virtual void printDataToString(DtString &buff) const
Print the interaction&#39;s data to the string provided.
Definition: interactionHLA.h:353

Document ID: Generated on Tue Aug 10 00:12:31 EDT 2021 from SVN revision 232765
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)