VR-Forces 4.3 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) 2010 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 
20 class DtSimManager;
21 class DtSimMessage;
23 class DtVrfObject;
25 class DtSimResource;
27 class DtSimulationAddress;
29 
30 #include <list>
31 
32 typedef std::list<DtResourceMonitorInfo> DtResourceMonitorList;
33 
53 
56 {
57 public:
62 
64  virtual ~DtResourceMonitor();
65 
67  DtResourceMonitor(DtSimManager * simManager);
68 
71 
73  const DtResourceMonitor & operator=(const DtResourceMonitor & orig);
74 
76  virtual bool init();
77 
80  void setSimManager(DtSimManager * simManager) { mySimManager = simManager; };
81  DtSimManager* simManager() const { return mySimManager; };
82 
84  virtual bool registerInterfaceCallbacks();
85 
95  virtual void tick(double simTime);
96 
98  virtual void restart();
99 
102  virtual void setEnabled(bool b);
103  bool enabled() const { return myEnabled; };
104 
105 public:
107  static void resourceMonitorRequestCallback(DtSimMessage* msg, void* usr);
108  virtual void processResourceMonitorRequest(DtSimInterfaceMessage* msg);
109 
114  static void currentResourceRequestCallback(DtSimMessage* msg, void* usr);
115  virtual void processCurrentResourceRequest(DtSimInterfaceMessage* msg);
117 
120  static void resourceNamesRequestCallback(DtSimMessage* msg, void* usr);
121  virtual void processResourceNamesRequestCallback(DtSimInterfaceMessage* msg);
122 
124  static void vrfObjectDeletedCallback(DtSimMessage * msg, void * usr);
125  virtual void processVrfObjectDeletedCallback(DtSimInterfaceMessage* msg);
126 
130  void setUpdateOnTick(bool b) { myUpdateOnTick = b; };
131  bool updateOnTick() const { return myUpdateOnTick; };
132 
136  virtual void resourcesChangedFor(const DtVrfObject*);
137  const std::list<DtString>& resourcesChangedList() const;
138 
139 protected:
142  virtual void publishResourcesFor(DtIfResourceMonitorResponse& response,
143  DtVrfObject* obj, const std::list<DtString>& resources);
144 
146  virtual void publishResourceNamesFor(DtIfResourceNamesResponse& response,
147  DtVrfObject* obj);
148 
153  virtual void addMonitorResource(const DtEntityIdentifier& id,
154  const DtString& resourceName, const DtSimulationAddress& sender,
155  int iMonitorBy, const DtFloat64& iMonitorPeriod, bool stopMonitoring);
156 
159  virtual DtResourceMonitorList::iterator resourceMonitorInfo(const DtEntityIdentifier& id);
160 
165  virtual void removeMonitorReference(const DtEntityIdentifier& id, const DtString& resourceName,
166  const DtSimulationAddress& sender);
167 
169  virtual void removeMonitorReference(const DtEntityIdentifier& id);
170 
172  virtual void removeAllMonitorReferencesTo(const DtSimulationAddress& addr);
173 
176  virtual bool shouldAddResource(const DtSimResource* resourceItem);
177 
178  virtual bool resourceChanged(const DtString&) const;
179 
180 protected:
183  bool myEnabled;
185 
186  std::list<DtString> myResourcesChangedList;
187 };
188 
189 inline const std::list<DtString>& DtResourceMonitor::resourcesChangedList() const
190 {
191  return myResourcesChangedList;
192 }
193 

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)