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) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtDIS
13 
15 #include <vl/interaction.h>
18 
19 class DtExerciseConn;
20 
22 
23 const unsigned WHEN_SIZE = 18;
24 
27 {
28  DtNetPduHeader DtHeader;
29  DtNetU16 myReportId;
30  DtNetU16 padding;
31  DtNetUuid myEntityId;
32  DtNetU16 myWhen[WHEN_SIZE];
33 };
34 
37  void* usr);
38 
42 {
43 public:
44 
46  DtResourceStatusReportInter(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
47 
49  virtual ~DtResourceStatusReportInter() override;
50 
53 
56 
58  virtual void setEntityId(const DtVrlUuid& val);
59 
61  DtVrlUuid entityId() const;
62 
64  virtual void setReportId(unsigned val);
65 
67  unsigned reportId() const;
68 
70  virtual void setWhen(const std::wstring& val);
71 
73  std::wstring when() const;
74 
76  virtual void setResources(const std::vector<DtSupplyStruct>& val);
77 
79  std::vector<DtSupplyStruct> resources() const;
80 
82  virtual void setFullResources(const std::vector<DtSupplyStruct>& val);
83 
85  std::vector<DtSupplyStruct> fullResources() const;
86 
88  virtual const char* name() const { return "DtResourceStatusReportInter"; }
89 
91  virtual void printData() const override;
92 
94  virtual void printDataToStream(std::ostream &stream) const override;
95 
96 public:
97 
100  static DtPdu* create(const DtNetPacket *initial,
101  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
102 
105  static void addCallback(DtExerciseConn* conn,
106  DtResourceStatusReportInterInterCb cb, void* usr);
107  static void removeCallback(DtExerciseConn* conn,
108  DtResourceStatusReportInterInterCb cb, void* usr);
109 
110 protected:
111 
113  DtResourceStatusReportInter(const DtNetPacket* pkt, DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
114 
115  // Reads the variable sized data into local storage.
116  virtual void readVariableSizedData();
117 
118  // Returns the number of bytes in the fixed length portion of this PDU
119  // This is the initial size of the PDU before any variable datums are added
120  virtual unsigned int fixedBytesSize() const;
121 
122  // A pointer to the first byte of variable datums. If there are no variable
123  // datums this points to the first byte out-of-bounds. This address should
124  // only be used if you know the PDU has been resized correctly.
125  virtual char *firstVarDatumStart() const;
126  static DtPduKind internalGetPduKindImpl() {
128  }
129  virtual DtPduKind internalGetPduKind() const override {
130  return internalGetPduKindImpl();}
131 
132  virtual unsigned netSizeOfResources(const std::vector<DtSupplyStruct>& resources) const;
133  virtual void writeResources(char* buffer, const std::vector<DtSupplyStruct>& resources);
134  virtual void readResources(char* buffer, std::vector<DtSupplyStruct>& resources) const;
135 
136 protected:
137 
138  // Cached values to ensure proper buffering
139  mutable std::vector<DtSupplyStruct> myResources;
140  mutable std::vector<DtSupplyStruct> myFullResources;
141 
142 };
143 
144 
145 
146 DT_DLL_vrfExtObjects std::ostream& operator<< (std::ostream& stream,
147  const DtResourceStatusReportInter& object);
148 
149 #endif
DT_DLL_features std::ostream & operator<<(std::ostream &, const DtFeatureTransform &)
std::ostream output.
std::vector< DtSupplyStruct > myFullResources
Definition: resourceStatusReportInterDIS.h:140
DtNetU16 myReportId
Definition: resourceStatusReportInterDIS.h:29
Instances of DtResourceStatusReportInter are used to store state data for ETR_Root.ETR_Report.StatusReport.MAK_ResourceStatusReport interactions.
Definition: resourceStatusReportInterDIS.h:41
static DtPduKind internalGetPduKindImpl()
Definition: resourceStatusReportInterDIS.h:126
std::vector< DtSupplyStruct > myResources
Definition: resourceStatusReportInterDIS.h:139
DtNetU16 myWhen[WHEN_SIZE]
Definition: resourceStatusReportInterDIS.h:32
const DtPduKind DtResourceStatusReportPduKind
Definition: disEnumsExtensions.h:130
DtNetPduHeader DtHeader
Definition: resourceStatusReportInterDIS.h:28
voidpf stream
Definition: ioapi.h:39
void(* DtResourceStatusReportInterInterCb)(DtResourceStatusReportInter *inter, void *usr)
DtResourceStatusReportInter callback function signature.
Definition: resourceStatusReportInterDIS.h:36
virtual DtPduKind internalGetPduKind() const override
Definition: resourceStatusReportInterDIS.h:129
const unsigned WHEN_SIZE
Definition: resourceStatusReportInterDIS.h:23
virtual const char * name() const
Name of the interaction.
Definition: resourceStatusReportInterDIS.h:88
A PDU layout for DtResourceStatusReportInter.
Definition: resourceStatusReportInterDIS.h:26
DtNetUuid myEntityId
Definition: resourceStatusReportInterDIS.h:31
DtNetU16 padding
Definition: resourceStatusReportInterDIS.h:30
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)