VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
serviceRequestInteractionHLA.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
7 #ifndef serviceRequestInteractionHLA_H_
8 #define serviceRequestInteractionHLA_H_
9 
10 #if DtHLA
11 
12 #include "interactionWithEncDec.h"
13 #include "hostStructs.h"
14 #include <matrix/vlMath.h>
15 
16 
17 #include "packets/logisticsP.h"
18 
22 
23 #define DtSUPPLY_VALID 1
24 #define DtSUPPLY_BAD_INDEX 0
25 
28 
29 
30 
32 typedef void (*DtServiceRequestInteractionCb)
33  (DtServiceRequestInteraction* inter, void* usr);
34 
39 
40 class DT_DLL_VL DtServiceRequestInteraction : public DtInteractionWithEncDec
41 {
42 public:
43 
46 
48  virtual ~DtServiceRequestInteraction();
49 
52 
54  DtServiceRequestInteraction& operator=(
55  const DtServiceRequestInteraction& orig);
56 
58  virtual void printData() const;
59 
61  virtual void printDataToStream(std::ostream& stream) const;
62 
64  virtual void setRequestingId(const DtGlobalObjectDesignator &requester);
65  virtual const DtGlobalObjectDesignator &requestingId() const;
66 
68  virtual void setServicingId(const DtGlobalObjectDesignator &servicer);
69  virtual const DtGlobalObjectDesignator &servicingId() const;
70 
72  virtual void setServiceType(DtServiceType type);
73  virtual DtServiceType serviceType() const;
74 
76  virtual void setSupplies(const void* data, int numBytes);
77  virtual const void* supplies() const;
78 
80  virtual void setNumSupplyTypes(int numTypes);
81  virtual int numSupplyTypes() const;
82 
83  virtual void setNthSupply(int supplyIndex, const DtEntityType &supply,
84  float quantity, int *retCode = NULL);
85  virtual const DtEntityType& nthSupply(int supplyIndex,
86  float *quantity = NULL, int *retCode = NULL) const;
87 
88  virtual float supplyQuantity(const DtEntityType &supply) const;
89 
90  virtual void changeSuppliesSize(int newSize);
91 
92  virtual int indexInBounds(int ind) const;
93 
94 
95 
97  virtual const char* name() const;
98 
99 public:
100 
103  static DtInteraction* create();
104 
107  static void addCallback(DtExerciseConn* conn,
108  DtServiceRequestInteractionCb cb, void* usr,
109  DtDDMRegionSP region = DtDDMRegionSP());
110  static void removeCallback(DtExerciseConn* conn,
111  DtServiceRequestInteractionCb cb, void* usr,
112  DtDDMRegionSP region = DtDDMRegionSP());
113 
114 protected:
115 
116  DtGlobalObjectDesignator myRequestingObject;
117  DtGlobalObjectDesignator myServicingObject;
118  DtServiceType myServiceType;
119  int myNumSupplyTypes;
120  DtNetSupplyQuantity* mySupplies;
121  DtEntityType myNthSupply;
122 };
123 
125  requestingId() const
126 {
127  return myRequestingObject;
128 }
129 
131  servicingId() const
132 {
133  return myServicingObject;
134 }
135 
137 {
138  return myServiceType;
139 }
140 
142  const DtGlobalObjectDesignator &id)
143 {
144  myServicingObject = id;
145 }
146 
148  const DtGlobalObjectDesignator &id)
149 {
150  myRequestingObject = id;
151 }
152 
154 {
155  myServiceType = type;
156 }
157 
158 inline const char* DtServiceRequestInteraction::name() const
159 {
160  return "DtServiceRequestInteraction";
161 }
162 
163 #endif
164 #endif
165 
DtInteraction is an base class for representing DIS PDUs which don&#39;t have state.
Definition: interactionDIS.h:24
void setRequestingId(const DtEntityIdentifier &requester)
DtServiceType
Definition: disEnums.h:376
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:61
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
This file declares classes for the Logistics PDUs.
const DtEntityIdentifier & servicingId() const
Definition: logisticsP.h:18
Definition: serviceRequestPdu.h:28
DtServiceRequestPdu DtServiceRequestInteraction
Definition: serviceRequestPdu.h:24
DtServiceType serviceType() const
This file defines math constants and methods which may be useful in simulations.
void setServiceType(DtServiceType service)
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.
const DtEntityIdentifier & requestingId() const
void setServicingId(const DtEntityIdentifier &servicer)
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26

Document ID: Generated on Tue Feb 2 21:02:17 EST 2021 from SVN revision 223668
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)