VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
resourceStatusReportInterDIS.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtDIS
13 
15 #include <vl/interaction.h>
17 
18 class DtExerciseConn;
19 
21 
22 const unsigned WHEN_SIZE = 18;
23 
26 {
27  DtNetPduHeader DtHeader;
28  DtNetU16 myReportId;
29  DtNetU16 padding;
30  DtNetUuid myEntityId;
31  DtNetU16 myWhen[WHEN_SIZE];
32 };
33 
36  void* usr);
37 
41 {
42 public:
43 
45  DtResourceStatusReportInter(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
47  DtResourceStatusReportInter(const DtNetPacket *pkt, DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
48 
50  virtual ~DtResourceStatusReportInter();
51 
54 
57 
59  virtual void setEntityId(const DtVrlUuid& val);
60 
62  DtVrlUuid entityId() const;
63 
65  virtual void setReportId(unsigned val);
66 
68  unsigned reportId() const;
69 
71  virtual void setWhen(const std::wstring& val);
72 
74  std::wstring when() const;
75 
77  virtual void setResources(const std::vector<DtSupplyStruct>& val);
78 
80  std::vector<DtSupplyStruct> resources() const;
81 
83  virtual void setFullResources(const std::vector<DtSupplyStruct>& val);
84 
86  std::vector<DtSupplyStruct> fullResources() const;
87 
89  virtual const char* name() const { return "DtResourceStatusReportInter"; }
90 
92  virtual void printData() const;
93 
95  virtual void printDataToStream(std::ostream& stream) const;
96 
97 public:
98 
101  static DtPdu* create(const DtNetPacket *initial,
102  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
103 
106  static void addCallback(DtExerciseConn* conn,
107  DtResourceStatusReportInterInterCb cb, void* usr);
108  static void removeCallback(DtExerciseConn* conn,
109  DtResourceStatusReportInterInterCb cb, void* usr);
110 
111 protected:
112 
113  // Returns the number of bytes in the fixed length portion of this PDU
114  // This is the initial size of the PDU before any variable datums are added
115  virtual unsigned int fixedBytesSize() const;
116  // A pointer to the first byte of variable datums. If there are no variable
117  // datums this points to the first byte out-of-bounds. This address should
118  // only be used if you know the PDU has been resized correctly.
119  virtual char *firstVarDatumStart() const;
120  static DtPduKind internalGetPduKindImpl() {return (DtPduKind) 226;}
121  DtPduKind internalGetPduKind() const {return internalGetPduKindImpl();}
122 
123  virtual unsigned netSizeOfResources(const std::vector<DtSupplyStruct>& resources) const;
124  virtual void writeResources(char* buffer, const std::vector<DtSupplyStruct>& resources);
125  virtual void readResources(char* buffer, std::vector<DtSupplyStruct>& resources) const;
126 
127 protected:
128 
129  // Cached values to ensure proper buffering
130  mutable std::vector<DtSupplyStruct> myResources;
131  mutable std::vector<DtSupplyStruct> myFullResources;
132 
133 };
134 
135 
136 
137 DT_DLL_vrfExtObjects std::ostream& operator<< (std::ostream& stream,
138  const DtResourceStatusReportInter& object);
139 
140 #endif
DT_DLL_features std::ostream & operator<<(std::ostream &, const DtFeatureTransform &)
std::ostream output.
std::vector< DtSupplyStruct > myFullResources
Definition: resourceStatusReportInterDIS.h:131
DtNetU16 myReportId
Definition: resourceStatusReportInterDIS.h:28
Instances of DtResourceStatusReportInter are used to store state data for ETR_Root.ETR_Report.StatusReport.MAK_ResourceStatusReport interactions.
Definition: resourceStatusReportInterDIS.h:40
static DtPduKind internalGetPduKindImpl()
Definition: resourceStatusReportInterDIS.h:120
DtPduKind internalGetPduKind() const
Definition: resourceStatusReportInterDIS.h:121
std::vector< DtSupplyStruct > myResources
Definition: resourceStatusReportInterDIS.h:130
DtNetU16 myWhen[WHEN_SIZE]
Definition: resourceStatusReportInterDIS.h:31
DtNetPduHeader DtHeader
Definition: resourceStatusReportInterDIS.h:27
voidpf stream
Definition: ioapi.h:39
void(* DtResourceStatusReportInterInterCb)(DtResourceStatusReportInter *inter, void *usr)
DtResourceStatusReportInter callback function signature.
Definition: resourceStatusReportInterDIS.h:35
const unsigned WHEN_SIZE
Definition: resourceStatusReportInterDIS.h:22
virtual const char * name() const
Name of the interaction.
Definition: resourceStatusReportInterDIS.h:89
A PDU layout for DtResourceStatusReportInter.
Definition: resourceStatusReportInterDIS.h:25
DtNetUuid myEntityId
Definition: resourceStatusReportInterDIS.h:30
DtNetU16 padding
Definition: resourceStatusReportInterDIS.h:29
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)