VR-Link API Documentation for HLA 1.3
 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 
18 class DtStandardVariableRecordFactory;
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 
38 class DT_DLL_VL DtPduFactory
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 
91  DtPduCreator* myCreators;
92  DtVPCreator* myVPCreators;
93 
94  DtStandardVariableRecordFactory* myStandardVariableFactory;
95  DtAttributePduStrategy myAttributePduStrategy;
96 
97 protected:
98 
99  static const int theMaxPduKinds;
100 };
101 
102 #endif

Document ID: Generated on Mon Jun 22 21:18:40 EDT 2020 from SVN revision 213785
Copyright © 2005-2018 MAK Technologies. All Rights Reserved (www.mak.com)