VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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(DtVrfObject * msg, void * usr);
128  virtual void processSimObjectAboutToBeRemoved(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  DtVrfObject* obj, const std::list<DtString>& resources);
147 
149  virtual void publishResourceNamesFor(DtIfResourceNamesResponse& response,
150  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 

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)