VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
resupplyCancelPdu.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 "hostStructs.h"
15 #include "pdu.h"
16 #include <matrix/vlMath.h>
17 #include "packets/logisticsP.h"
18 #include "interaction.h"
19 
20 
22 
25 typedef void (*DtResupplyCancelPduCb)(DtResupplyCancelPdu *pdu, void *usr);
26 
28 {
29 public:
30 
31  enum { PduStaticSize=24 };
32 
33 public:
34 
37  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
38  DtResupplyCancelPdu(const DtEntityIdentifier &receiveId,
39  const DtEntityIdentifier &supplyId,
41 
42  virtual ~DtResupplyCancelPdu() {};
43 
44  const DtEntityIdentifier &receivingId() const;
45  void setReceivingId(const DtEntityIdentifier &id);
46 
47  const DtEntityIdentifier &supplyingId() const;
48  void setSupplyingId(const DtEntityIdentifier &id);
49 
50  virtual void printData() const;
51  virtual void printDataToStream(std::ostream& stream) const;
52 
53 public:
54 
55  static DtPdu *create(const DtNetPacket *initial,
56  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
57 
58  static void addCallback(DtExerciseConn *conn,
59  DtResupplyCancelPduCb cb, void *usr);
60  static void removeCallback(DtExerciseConn *conn,
61  DtResupplyCancelPduCb cb, void *usr);
62 
63 protected:
64 
67 
68 };
69 
70 /*******************************************************/
71 /******************* RESUPPLY OFFER PDU ****************/
72 /*******************************************************/
73 
74 #define DtSUPPLY_VALID 1
75 #define DtSUPPLY_BAD_INDEX 0
76 
79 typedef void (*DtResupplyOfferPduCb)(DtResupplyOfferPdu *pdu, void *usr);
80 
82 {
83 public:
84 
85  enum { PduStaticSize=28 };
86 
87 public:
88 
89 
92  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
93 
94  DtResupplyOfferPdu(const DtEntityIdentifier &receiver,
95  const DtEntityIdentifier &supplier,
96  const DtEntityType &supply,
97  float quantity,
99 
100  const DtEntityIdentifier &supplyingId() const;
101  void setSupplyingId(const DtEntityIdentifier &servicer);
102 
103  int numSupplyTypes() const;
104  void setNumSupplyTypes(int numTypes);
105 
106  float supplyQuantity(const DtEntityType &supply) const;
107 
108  void setReceivingId(const DtEntityIdentifier &requester);
109  const DtEntityIdentifier &receivingId() const;
110 
111  const DtEntityType &nthSupply(int supplyIndex,
112  float *quantity = 0,
113  int *retCode = 0) const;
114  void setNthSupply(int supplyIndex,
115  const DtEntityType &supply,
116  float quantity,
117  int *retCode = 0);
118 
119  virtual void printData() const;
120  virtual void printDataToStream(std::ostream& stream) const;
121 
122 public:
123 
124  static DtPdu *create(const DtNetPacket *initial,
125  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
126  static void addCallback(DtExerciseConn *conn,
127  DtResupplyOfferPduCb cb, void *usr);
128  static void removeCallback(DtExerciseConn *conn,
129  DtResupplyOfferPduCb cb, void *usr);
130 
131 protected:
132 
134  int indexInBounds(int ind) const;
137 };
138 
139 /*******************************************************/
140 /******************* RESUPPLY RECEIVED PDU *************/
141 /*******************************************************/
142 
145 typedef void (*DtResupplyReceivedPduCb)(DtResupplyReceivedPdu *pdu, void *usr);
146 
148 {
149 public:
150 
151  enum { PduStaticSize=28 };
152 
153 
154 public:
155 
156 
159  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
160 
162  const DtEntityIdentifier &supplier,
163  const DtEntityType &supply,
164  float quantity,
166 
167  const DtEntityIdentifier &receivingId() const;
168  void setReceivingId(const DtEntityIdentifier &requester);
169 
170  const DtEntityIdentifier &supplyingId() const;
171  void setSupplyingId(const DtEntityIdentifier &servicer);
172 
173  int numSupplyTypes() const;
174  void setNumSupplyTypes(int numTypes);
175 
176  float supplyQuantity(const DtEntityType &supply) const;
177 
178  const DtEntityType &nthSupply(int supplyIndex,
179  float *quantity = 0,
180  int *retCode = 0) const;
181 
182  void setNthSupply(int supplyIndex,
183  const DtEntityType &supply,
184  float quantity,
185  int *retCode = 0);
186 
187  virtual void printData() const;
188  virtual void printDataToStream(std::ostream& stream) const;
189 
190 public:
191 
192  static DtPdu *create(const DtNetPacket *initial,
193  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
194  static void addCallback(DtExerciseConn *conn,
195  DtResupplyReceivedPduCb cb, void *usr);
196  static void removeCallback(DtExerciseConn *conn,
197  DtResupplyReceivedPduCb cb, void *usr);
198 
199 
200 protected:
201 
203  int indexInBounds(int ind) const;
206 };
207 
208 #endif

Document ID: Generated on Fri Dec 2 02:42:08 EST 2016 from SVN revision 171416
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)