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"
16 
17 class DtStandardVariableRecordFactory;
18 
20 typedef DtPdu* (*DtPduCreator)(const DtNetPduHeader* packet,
21  DtBufferPtr buffer, DtPduFactory* pduFactory);
22 
24 typedef DtVPRecord* (*DtVPCreator)();
25 
29 #define DtADD_PDU_CREATOR(x) \
30  addCreator(Dt##x##PduKind, &Dt##x##Pdu::create);
31 
36 
37 class DT_DLL_VL DtPduFactory
38 {
39 public:
40 
42  DtPduFactory();
43 
45  virtual ~DtPduFactory();
46 
48  DtPduFactory(const DtPduFactory& orig);
49 
51  DtPduFactory& operator=(const DtPduFactory& orig);
52 
56  virtual DtPdu* createPdu(const DtNetPacket* packet,
58 
59  virtual DtVPRecord* createVPRecord(DtVPRecordKind kind);
60 
66  virtual DtPduCreator addCreator(DtPduKind kind, DtPduCreator creator);
68 
69 
70  virtual DtVPCreator addVPRecordCreator(DtVPRecordKind kind, DtVPCreator creator);
71 
72  virtual int packetGood(const DtNetPacket* packet) const;
73 
74  // This returns the current Standard Variable Factory
75  virtual DtStandardVariableRecordFactory* standardVariableRecordFactory() const;
76 
77  // This sets the Standard Variable Factory. In addition, it returns the previous one.
78  virtual DtStandardVariableRecordFactory* setStandardVariableRecordFactory(DtStandardVariableRecordFactory* newFactory);
79 
80 public:
81  static int dfltPacketGood(const DtNetPacket* packet);
82 
83 protected:
84 
86  DtPduCreator* myCreators;
87  DtVPCreator* myVPCreators;
88 
89  DtStandardVariableRecordFactory* myStandardVariableFactory;
90 
91 protected:
92 
93  static const int theMaxPduKinds;
94 };
95 
96 #endif

Document ID: Generated on Thu Feb 22 04:26:36 EST 2018 from SVN revision 186468
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)