VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
resourceMonitor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
12 
13 
14 #pragma once
15 
17 #include <vlutil/vlMachineTypes.h>
18 #include <vlutil/vlString.h>
19 #include <vrfutil/rwUUID.h>
20 
21 #include <set>
22 
23 class DtSimManager;
24 class DtSimMessage;
26 class DtVrfObject;
28 class DtSimResource;
30 class DtSimulationAddress;
32 
33 #include <list>
34 
35 typedef std::list<DtResourceMonitorInfo> DtResourceMonitorList;
36 
56 
59 {
60 public:
65 
67  virtual ~DtResourceMonitor();
68 
70  DtResourceMonitor(DtSimManager * simManager);
71 
74 
76  const DtResourceMonitor & operator=(const DtResourceMonitor & orig);
77 
79  virtual bool init();
80 
83  void setSimManager(DtSimManager * simManager) { mySimManager = simManager; };
84  DtSimManager* simManager() const { return mySimManager; };
85 
87  virtual bool registerInterfaceCallbacks();
88 
98  virtual void tick(double simTime);
99 
101  virtual void restart();
102 
105  virtual void setEnabled(bool b);
106  bool enabled() const { return myEnabled; };
107 
108 public:
110  static void resourceMonitorRequestCallback(DtSimMessage* msg, void* usr);
111  virtual void processResourceMonitorRequest(DtSimInterfaceMessage* msg);
112 
117  static void currentResourceRequestCallback(DtSimMessage* msg, void* usr);
118  virtual void processCurrentResourceRequest(DtSimInterfaceMessage* msg);
120 
123  static void resourceNamesRequestCallback(DtSimMessage* msg, void* usr);
124  virtual void processResourceNamesRequestCallback(DtSimInterfaceMessage* msg);
125 
127  static void simObjectAboutToBeRemoved(const DtVrfObject * msg, void * usr);
128  virtual void processSimObjectAboutToBeRemoved(const DtVrfObject* msg);
129 
133  void setUpdateOnTick(bool b) { myUpdateOnTick = b; };
134  bool updateOnTick() const { return myUpdateOnTick; };
135 
139  virtual void resourcesChangedFor(const DtVrfObject*);
140  const std::set<DtUUID>& resourcesChangedList() const;
141 
142 protected:
145  virtual void publishResourcesFor(DtIfResourceMonitorResponse& response,
146  const DtVrfObject* obj, const std::list<DtString>& resources);
147 
149  virtual void publishResourceNamesFor(DtIfResourceNamesResponse& response,
150  const DtVrfObject* obj);
151 
156  virtual void addMonitorResource(const DtUUID&,
157  const DtString& resourceName, const DtSimulationAddress& sender,
158  int iMonitorBy, const DtFloat64& iMonitorPeriod, bool stopMonitoring);
159 
162  virtual DtResourceMonitorList::iterator resourceMonitorInfo(const DtUUID&);
163 
168  virtual void removeMonitorReference(const DtUUID&, const DtString& resourceName,
169  const DtSimulationAddress& sender);
170 
172  virtual void removeMonitorReference(const DtUUID&);
173 
175  virtual void removeAllMonitorReferencesTo(const DtSimulationAddress& addr);
176 
179  virtual bool shouldAddResource(const DtSimResource* resourceItem);
180 
181  virtual bool resourceChanged(const DtUUID&) const;
182 
183 protected:
186  bool myEnabled;
188 
189  std::set<DtUUID> myResourcesChangedList;
190 };
191 
192 inline const std::set<DtUUID>& DtResourceMonitor::resourcesChangedList() const
193 {
194  return myResourcesChangedList;
195 }
196 
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
bool myEnabled
Definition: resourceMonitor.h:186
Class: DtResourceMonitor.
Definition: resourceMonitor.h:58
void setSimManager(DtSimManager *simManager)
If the default constructor was used, you can supply a sim manager later; however, if you do...
Definition: resourceMonitor.h:83
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtSimManager * mySimManager
Definition: resourceMonitor.h:184
void setUpdateOnTick(bool b)
Set to make sure the resource monitor updates the network with any requested resources even if the si...
Definition: resourceMonitor.h:133
std::list< DtResourceMonitorInfo > DtResourceMonitorList
Definition: resourceMonitor.h:31
Content-Type: DtNetIfResourceMonitorResponse.
Definition: ifResourceMonitorResponse.h:43
Variable portion List of resouce names.
Definition: ifResourceNamesResponse.h:42
DtSimInterfaceMessage is used to send a message to the front end or the back end. ...
Definition: simInterfaceMessage.h:32
std::set< DtUUID > myResourcesChangedList
Definition: resourceMonitor.h:189
bool updateOnTick() const
Definition: resourceMonitor.h:134
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
File: simMsg.h.
Definition: simMessage.h:35
bool myUpdateOnTick
Definition: resourceMonitor.h:187
double DtFloat64
Definition: vrvControlStructTypes.h:36
DtSimCondExpr is an abstract base class representing various Conditional Expressions used by the Plan...
Definition: simCondExpr.h:49
DtSimResource is an abstract base class that can be used to create a hierarchical resource list of a ...
Definition: simResource.h:41
const std::set< DtUUID > & resourcesChangedList() const
Definition: resourceMonitor.h:192
DtSimManager * simManager() const
Definition: resourceMonitor.h:84
bool enabled() const
Definition: resourceMonitor.h:106
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
DtResourceMonitorList myMonitoringResources
Definition: resourceMonitor.h:185

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)