VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
serviceRequestPdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
7 #if DtDIS
8 
11 
12 #pragma once
13 
14 #include "pdu.h"
15 #include "packets/logisticsP.h"
16 #include "hostStructs.h"
17 #include "interactionDIS.h"
18 
19 #define DtSUPPLY_VALID 1
20 #define DtSUPPLY_BAD_INDEX 0
21 
23 
24 class DT_DLL_VL DtServiceRequestPdu;
25 typedef DtServiceRequestPdu DtServiceRequestInteraction;
26 typedef void (*DtServiceRequestPduCb)(DtServiceRequestPdu *pdu, void *usr);
27 
28 class DT_DLL_VL DtServiceRequestPdu : public DtInteraction
29 {
30 
31 public:
32 
33  enum { PduStaticSize=28 };
34 
35 public:
36 
37 
38  DtServiceRequestPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
39  DtServiceRequestPdu(const DtNetServiceRequestPdu *initial,
40  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
41 
42  DtServiceRequestPdu(const DtEntityIdentifier &requester,
43  const DtEntityIdentifier &servicer,
44  DtServiceType serviceType = DtServiceTypeRepair,
46 
47 
48  DtServiceRequestPdu(const DtEntityIdentifier &requester,
49  const DtEntityIdentifier &servicer,
50  const DtEntityType &supply,
51  float quantity,
53 
54 
55  const DtEntityIdentifier &requestingId() const;
56  void setRequestingId(const DtEntityIdentifier &requester);
57 
58  const DtEntityIdentifier &servicingId() const;
59  void setServicingId(const DtEntityIdentifier &servicer);
60 
61  DtServiceType serviceType() const;
62  void setServiceType(DtServiceType service);
63 
64  int numSupplyTypes() const;
65  void setNumSupplyTypes(int numTypes);
66 
67  const DtEntityType &nthSupply(int supplyIndex,
68  float *quantity = NULL,
69  int *retCode = NULL) const;
70  void setNthSupply(int supplyIndex,
71  const DtEntityType &supply,
72  float quantity,
73  int *retCode = NULL);
74 
75  float supplyQuantity(const DtEntityType &supply) const;
76 
77  virtual void printData() const;
78  virtual void printDataToStream(std::ostream& stream) const;
79 
80 public:
81 
82  static DtPdu *create(const DtNetPacket *initial,
83  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
84  static void addCallback(DtExerciseConn *conn,
85  DtServiceRequestPduCb cb, void *usr);
86  static void removeCallback(DtExerciseConn *conn,
87  DtServiceRequestPduCb cb, void *usr);
88 protected:
89  DtPduKind internalGetPduKind() const {return DtServiceRequestPduKind;}
90  int indexInBounds(int ind) const;
91  DtEntityIdentifier reqId;
92  DtEntityIdentifier servId;
93  DtEntityType supType;
94 };
95 
96 #endif
DtInteraction is an abstract base class for representing HLA interactions (or events) (as opposed to ...
Definition: interactionHLA.h:33
DtServiceType
Definition: disEnums.h:376
Instances of DtExerciseConn are used to provide an application's interface or connection to the netwo...
Definition: exerciseConnHLA.h:58
Definition: logisticsP.h:25
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
This file declares classes for the Logistics PDUs.
Definition: pduHeader.h:14
Definition: disEnums.h:245
class DtServiceRequestInteraction:
Definition: serviceRequestInteractionHLA.h:40
static void removeCallback(DtExerciseConn *conn, const std::vector< DtString > *classes, DtReceiveInteractionCb cb, void *usr, DtDDMRegionSP region=DtDDMRegionSP())
virtual void printData() const
Print the interaction&#39;s data to DtInfo.
Definition: interactionHLA.h:349
virtual void printDataToStream(std::ostream &stream) const
Print the interaction&#39;s data to the stream.
Definition: interactionHLA.h:357
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
static void addCallback(DtExerciseConn *conn, const std::vector< DtString > *classes, DtReceiveInteractionCb cb, void *usr, DtDDMRegionSP region=DtDDMRegionSP())
Register/Deregister callback function cb with conn, on all interaction class name (char*) contained i...
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
Definition: disEnums.h:380
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26

Document ID: Generated on Tue Aug 10 00:12:31 EDT 2021 from SVN revision 232765
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)