VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
spotReportGeneratorController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 #pragma once
12 
15 #include <list>
18 #include "vrftasks/spotReport.h"
19 
22 class DtSimReport;
26 class DtSimMessage;
27 class DtVrfObjectMessage;
28 class DtSettingsObject;
29 class DtBoolSetting;
30 
49 {
50 private:
58 public:
59 
63  DtSimManager* simManager, DtComponentDescriptor* desc=0,
64  DtReaderWriterRegistry *parentRegistry=0);
65 
68 
72  virtual bool init();
73 
76  virtual const char* type() const;
77 
81  virtual void tick();
82 
84  static void setSpotReportingCallback(DtSimMessage * msg, void * usr);
85 
86  virtual void processSetSpotReporting(DtSimMessage * msg);
87 
91  virtual void setLocalEnabled(bool on);
92 
100  virtual void setGlobalEnabledOverridingLocal();
101 
104  virtual void resendSpotReports(unsigned long requestId);
105 
109  static DtSimComponent * creator(const DtString& name,
110  DtVrfObject* owner,
111  DtSimManager* simManager,
112  DtComponentDescriptor* desc = 0,
113  DtReaderWriterRegistry* parentRegistry = 0);
114 
115 protected:
116 
121  virtual void turnSpotReportingOn();
122  virtual void turnSpotReportingOff();
124 
126  virtual bool createPorts();
127 
133  virtual bool createPSR();
134 
137  static void objectAboutToBeRemovedCallback(DtVrfObject* object, void* usr);
138  virtual void processObjectAboutToBeRemoved(DtVrfObject* object);
139 
141  virtual void registerRadioMessageCallbacks();
142 
146  virtual void sendDestroyedReports(unsigned long resendId, bool queueMissing = false);
147 
151  virtual DtSpotReport* createDestroyedReport(unsigned long resendId, const DtUUID& entity, bool& objectIsNoLongerDestroyed);
152 
163  virtual void generateAndSendSpotReports();
164 
172  virtual bool isTypeAndForceForReport(
173  DtRwSensorContactInfo* contact);
174 
179  virtual DtSpotReport* createSpotReportForContact(
180  const DtRwSensorContactInfo& contactInfo);
181 
183  virtual void updateSpotReportForContact(DtSpotReport& spotReport,
184  const DtRwSensorContactInfo& contact);
185 
190  virtual void sendSpotReport(DtSpotReport& spotReport, bool superiorOnly);
191 
193  virtual void sendSpotReports(const std::vector<DtSimReport*>& spotReports, bool superiorOnly);
194 
200  virtual bool spotReportNeedsUpdateAndResend(const DtSpotReport& spotRep,
201  const DtRwSensorContactInfo& contact, DtSpotReport::Reason& reason) const;
202 
205  virtual double heartbeatDeltaFor(const DtSpotReport& spotRep,
206  const DtRwSensorContactInfo& contact) const;
207 
214  virtual const DtSimReportMessageType& spotReportTypeString() const;
215 
219  static void settingConsumerCallback(const DtSettingsObject* settingsObject,
220  void* usr);
223  virtual void readGlobalEnabledSetting(const DtBoolSetting* enabledSetting);
224 
227 
228  static void hostilitiesChangedCallback(DtU8 force, void* usr);
229  virtual void processHostilitiesChanged(DtU8 force);
231 
236  virtual bool reportingEnabled() const;
237 
241  virtual bool checkSpotReportUpdateConditions(const DtSpotReport& spotRep,
242  const DtRwSensorContactInfo& contact, DtSpotReport::Reason& reason) const;
243 
246  virtual bool checkDeltaDistanceConditions(const DtSpotReport& spotRep,
247  const DtRwSensorContactInfo& contact) const;
248 
250  virtual bool checkDeltaHeartbeatConditions(const DtSpotReport& spotRep,
251  const DtRwSensorContactInfo& contact) const;
252 
254  virtual bool entityHasUpdateRate(const DtRwSensorContactInfo& contactInfo) const;
255 
257  virtual void timedTick();
258 
260  static void objectAddedCb(DtVrfObject*, void* usr);
261  virtual void processObjectAdded(DtVrfObject*);
262 
263  static void requestSpotReportsCallback(DtSimMessage* msg, void* usr);
264  virtual void processRequestSpotReports(DtSimMessage* msg);
265 
266 protected:
267 
276 
277 
278 
279 
280 
281 
282 
285 
288 
292 
295 
299 
303 
305 
307 
308  typedef std::map<DtUUID, std::vector<unsigned long> > MissingDestroyedObjectsMap;
310 };
311 

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)