VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pduFactory.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 #include "pdu.h"
15 #include "vpRecord.h"
17 
19 
21 typedef DtPdu* (*DtPduCreator)(const DtNetPduHeader* packet,
22  DtBufferPtr buffer, DtPduFactory* pduFactory);
23 
25 typedef DtVPRecord* (*DtVPCreator)();
26 
30 #define DtADD_PDU_CREATOR(x) \
31  addCreator(Dt##x##PduKind, &Dt##x##Pdu::create);
32 
37 
39 {
40 public:
41 
43  DtPduFactory();
44 
46  virtual ~DtPduFactory();
47 
49  DtPduFactory(const DtPduFactory& orig);
50 
52  DtPduFactory& operator=(const DtPduFactory& orig);
53 
57  virtual DtPdu* createPdu(const DtNetPacket* packet,
59 
60  virtual DtVPRecord* createVPRecord(DtVPRecordKind kind);
61 
67  virtual DtPduCreator addCreator(DtPduKind kind, DtPduCreator creator);
69 
70 
71  virtual DtVPCreator addVPRecordCreator(DtVPRecordKind kind, DtVPCreator creator);
72 
73  virtual int packetGood(const DtNetPacket* packet) const;
74 
75  // This returns the current Standard Variable Factory
76  virtual DtStandardVariableRecordFactory* standardVariableRecordFactory() const;
77 
78  // This sets the Standard Variable Factory. In addition, it returns the previous one.
79  virtual DtStandardVariableRecordFactory* setStandardVariableRecordFactory(DtStandardVariableRecordFactory* newFactory);
80 
82  virtual void setAttributePduStrategy(DtAttributePduStrategy strat);
83  virtual DtAttributePduStrategy attributePduStrategy() const;
84 
85 public:
86  static int dfltPacketGood(const DtNetPacket* packet);
87 
88 protected:
89 
93 
96 
97 protected:
98 
99  static const int theMaxPduKinds;
100 };
101 
102 #endif
DtVPRecordKind
Definition: disEnums.h:323
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: pduHeader.h:14
DtVPCreator * myVPCreators
Definition: pduFactory.h:92
class DtPduFactory:
Definition: pduFactory.h:38
DtAttributePduStrategy myAttributePduStrategy
Definition: pduFactory.h:95
DtPdu is the base class for all PDU's in VR-Link.
Definition: pdu.h:69
DtAttributePduStrategy
Definition: vlAttributePduStrategy.h:16
static const int theMaxPduKinds
Definition: pduFactory.h:99
DtPduCreator * myCreators
myCreators is an array of theMaxPduKinds items.
Definition: pduFactory.h:91
DtStandardVariableRecordFactory * myStandardVariableFactory
Definition: pduFactory.h:94
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
DtPdu *(* DtPduCreator)(const DtNetPduHeader *packet, DtBufferPtr buffer, DtPduFactory *pduFactory)
PDU creation function signature.
Definition: pduFactory.h:21
A representation of a VP Record is specific to DIS version 7.
Definition: vpRecord.h:20
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
Definition: standardVariableRecordFactory.h:19
DtVPRecord *(* DtVPCreator)()
VPRecord creation function signature.
Definition: pduFactory.h:25

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)