VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
intercomControlPdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 #include <vlutil/vlMachineTypes.h>
15 #include "hostStructs.h"
16 #include "interactionDIS.h"
17 #include "exerciseConn.h"
18 
19 #include "packets/intercmCtlP.h"
20 
21 #include "intercomParmRec.h"
22 #include "intercomEntityDestRec.h"
23 #include "intercomGroupAsgmtRec.h"
24 #include "intercomGroupDestRec.h"
25 
26 
27 
28 class DT_DLL_VL DtIntercomControlPdu;
29 
31 typedef void (*DtIntercomControlPduCb)(DtIntercomControlPdu* pdu, void* usr);
32 
33 
37 class DT_DLL_VL DtIntercomControlPdu : public DtInteraction
38 {
39 
40 public:
41 
43  DtIntercomControlPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
44  DtIntercomControlPdu(const DtNetIntercomControlPdu* initial,
45  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
46  DtIntercomControlPdu(const DtIntercomControlPdu& orig);
47 
49  virtual ~DtIntercomControlPdu();
50 
52  DtIntercomControlPdu& operator=(const DtIntercomControlPdu& orig);
53 
55  virtual void setControlType(DtIntercomCtlType controlType);
56  virtual DtIntercomCtlType controlType() const;
57 
59  virtual void setCommClass(DtIntercomCommClass commClass);
60  virtual DtIntercomCommClass commClass() const;
61 
63  virtual void setCommType(DtIntercomCommType commType);
64  virtual DtIntercomCommType commType() const;
65 
67  virtual void setSourceEntityID(const DtEntityIdentifier& entity);
68  virtual const DtEntityIdentifier& sourceEntityID() const;
69 
71  virtual void setSourceDeviceID(DtU16 deviceID);
72  virtual DtU16 sourceDeviceID() const;
73 
75  virtual void setSourceLineID(DtU8 lineID);
76  virtual DtU8 sourceLineID() const;
77 
79  virtual void setTransmitPriority(DtU8 transmitPriority);
80  virtual DtU8 transmitPriority() const;
81 
83  virtual void setTransmitLineState(DtIntercomTransLineState lineState);
84  virtual DtIntercomTransLineState transmitLineState() const;
85 
87  virtual void setCmdType(DtIntercomCmdType cmdType);
88  virtual DtIntercomCmdType cmdType() const;
89 
91  virtual void setMasterEntityID(const DtEntityIdentifier& entity);
92  virtual const DtEntityIdentifier& masterEntityID() const;
93 
95  virtual void setMasterDeviceID(DtU16 deviceID);
96  virtual DtU16 masterDeviceID() const;
97 
99  virtual void setMasterChannelID(DtU16 channelID);
100  virtual DtU16 masterChannelID() const;
101 
104  virtual DtU32 parmRecordsLength() const;
105 
109  virtual bool setNumParmRecords(int numRecords);
110  virtual int numParmRecords() const;
111 
114  virtual bool getRecordType(int parmIndex,
115  DtIntercomCtlRecType& recordType) const;
116 
123  virtual bool setParmRecord(int parmIndex,
124  const DtIntercomEntityDestRec& init);
125  virtual bool getParmRecord(int parmIndex,
126  DtIntercomEntityDestRec& record) const;
127  virtual bool setParmRecord(int parmIndex,
128  const DtIntercomGroupDestRec& init);
129  virtual bool getParmRecord(int parmIndex,
130  DtIntercomGroupDestRec& record) const;
131  virtual bool setParmRecord(int parmIndex,
132  const DtIntercomGroupAsgmtRec& init);
133  virtual bool getParmRecord(int parmIndex,
134  DtIntercomGroupAsgmtRec& record) const;
135 
137  virtual void printData() const;
138 
140  virtual void printDataToStream(std::ostream& stream) const;
141 
142 public:
143 
146  static DtPdu* create(const DtNetPacket* initial,
147  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
148 
151  static void addCallback(DtExerciseConn* conn,
152  DtIntercomControlPduCb cb, void* usr);
153  static void removeCallback(DtExerciseConn* conn,
154  DtIntercomControlPduCb cb, void* usr);
155 
156 protected:
157 
159  virtual DtPduKind internalGetPduKind() const;
160 
162  virtual DtNetIntercomControlPdu* netPduStruct() const;
163 
166  DtIntercomControlPdu* self() const;
167 
169  virtual char* var() const;
170 
172  virtual int recordOffset(int recordIndex) const;
173 
175  virtual void resizeRecord(DtNetIntercomParmRec* rec, int newSize);
176 
177 protected:
178 
180  static const int theStaticSize;
181 
182 protected:
183 
185  int myNumParmRecords;
186 
188  DtEntityIdentifier myEntityID;
189 
190 };
191 
192 #endif
DtInteraction is an abstract base class for representing HLA interactions (or events) (as opposed to ...
Definition: interactionHLA.h:33
DtIntercomTransLineState
Definition: disEnums.h:1995
DtIntercomCommClass
Definition: disEnums.h:1970
DtIntercomCmdType
Definition: disEnums.h:1984
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
DtInteraction & operator=(const DtInteraction &orig)
assignment operator
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
DtIntercomCtlType
DMO enums used by 2.1.4 PDUs.
Definition: disEnums.h:1961
Definition: pduHeader.h:14
This file declares classes related to intercom messages.
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:348
virtual void printDataToStream(std::ostream &stream) const
Print the interaction&#39;s data to the stream.
Definition: interactionHLA.h:356
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
unsigned char DtU8
An eight bit unsigned integer value.
Definition: vlMachineTypes.h:137
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...
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file provides protocol to independence DtExerciseConn.
DtIntercomCommType
Definition: disEnums.h:1976
DtIntercomCtlRecType
Definition: disEnums.h:2010
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
unsigned long DtU32
A 32 bit unsigned integer value.
Definition: vlMachineTypes.h:153
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
This file contains typedefs for machine dependant types.

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)