VR-Link API Documentation for DIS
 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 MAK Technologies, Inc
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 
19 
21 
22 typedef void (*DtAttributeInteractionCb)(DtAttributeInteraction *inter, void *usr);
23 
27 {
28 public:
29 
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 
95 
97  virtual DtNetAttributePdu* netPduStruct() const;
98 
101  DtAttributePdu* self() const;
102 
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 base class for representing DIS PDUs which don&#39;t have state.
Definition: interactionDIS.h:24
Definition: pduWithAttributeRecordSets.h:22
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: exerciseConnDIS.h:62
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: pduHeader.h:14
Definition: attributeP.h:18
DtProtocolFamily myAttributeRecordProtocolVersion
Definition: attributePdu.h:105
DtAttributeActionCode
([UID 295]) - Attribute PDU Action Code
Definition: disEnums.h:3173
class DtPduFactory:
Definition: pduFactory.h:38
Definition: disEnums.h:317
DtPduKind internalGetPduKind() const
Returns the internal PDU kind.
Definition: attributePdu.h:94
Instances of DtAttributePdu are used to represent the arbitrary attributes added to PDUs...
Definition: attributePdu.h:26
virtual void printDataToStream(std::ostream &stream) const
This file is used as a convenience to group interaction concepts together.
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
virtual void printDataToString(DtString &str) const
DtPduKind myAttributeRecordPduType
Definition: attributePdu.h:104
DtProtocolFamily
([UID 5]) - Protocol Family
Definition: disEnums.h:353
void(* DtAttributeInteractionCb)(DtAttributeInteraction *inter, void *usr)
Definition: attributePdu.h:22
unsigned int myMasterAttributeRecordType
Definition: attributePdu.h:106
virtual void printData() const
Print the PDU&#39;s data (not including header).
DtAttributePdu DtAttributeInteraction
Definition: attributePdu.h:18
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
static const int theStaticSize
Size of PDU with zero records.
Definition: attributePdu.h:86
DtDatumParam
([UID 66]) - Datum ID
Definition: disEnums.h:505
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
Instances of DtString are used to represent strings.
Definition: vlString.h:29
DtAttributeActionCode myActionCode
Definition: attributePdu.h:107
DtSimulationAddress mySimulationAddress
Definition: attributePdu.h:103
This file contains typedefs for machine dependant types.

Document ID: Generated on Thu Sep 19 02:12:35 EDT 2024 from SVN revision 269601
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)