![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2005 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: spotReportGenerator.h,v $ $Revision: 1.16 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef spotReportGenerator_H_ 00016 #define spotReportGenerator_H_ 00017 00018 #include "vrfobjcore/cntrlCmpnt.h" 00019 #include "vrfobjcore/entityTargetInformation.h" 00020 #include <list> 00021 #include "vrfmodel/vrfmodelDefines.h" 00022 00023 class DtSpotReportGeneratorControllerDescriptor; 00024 class DtSensorContactListInputPort; 00025 class DtObjectTypesListOutputPort; 00026 class DtRwSensorContactInfo; 00027 class DtSpotReportGeneratorControllerPSR; 00028 class DtSpotReport; 00029 class DtSimMessage; 00030 class DtVrfObjectMessage; 00031 class DtSettingsObject; 00032 class DtBoolSetting; 00033 00051 class DT_DLL_vrfmodel DtSpotReportGeneratorController : public DtControllerComponent 00052 { 00053 private: 00055 DtSpotReportGeneratorController(); 00057 DtSpotReportGeneratorController(const DtSpotReportGeneratorController& orig); 00059 DtSpotReportGeneratorController& operator=( 00060 const DtSpotReportGeneratorController& orig); 00061 public: 00062 00065 DtSpotReportGeneratorController(const DtString& name, DtVrfObject* owner, 00066 DtSimManager* simManager, DtComponentDescriptor* desc=0, 00067 DtReaderWriterRegistry *parentRegistry=0); 00068 00070 virtual ~DtSpotReportGeneratorController(); 00071 00075 virtual bool init(); 00076 00079 virtual DtString type() const; 00080 00084 virtual void tick(); 00085 00087 static void setSpotReportingCallback(DtSimMessage * msg, void * usr); 00088 00089 virtual void processSetSpotReporting(DtSimMessage * msg); 00090 00094 virtual void setLocalEnabled(bool on); 00095 00103 virtual void setGlobalEnabledOverridingLocal(); 00104 00108 static DtSimComponent * creator(const DtString& name, 00109 DtVrfObject* owner, 00110 DtSimManager* simManager, 00111 DtComponentDescriptor* desc = 0, 00112 DtReaderWriterRegistry* parentRegistry = 0); 00113 00114 protected: 00115 00120 virtual void turnSpotReportingOn(); 00121 virtual void turnSpotReportingOff(); 00123 00125 virtual bool createPorts(); 00126 00132 virtual bool createPSR(); 00133 00135 virtual void registerRadioMessageCallbacks(); 00136 00147 virtual void generateAndSendSpotReports(); 00148 00153 virtual DtSpotReport* createSpotReportForContact( 00154 const DtRwSensorContactInfo& contactInfo); 00155 00157 virtual void updateSpotReportForContact(DtSpotReport& spotReport, 00158 const DtRwSensorContactInfo& contact); 00159 00164 virtual void sendSpotReport(DtSpotReport& spotReport, bool superiorOnly); 00165 00171 virtual bool spotReportNeedsUpdateAndResend(const DtSpotReport& spotRep, 00172 const DtRwSensorContactInfo& contact); 00173 00180 virtual DtString spotReportTypeString() const; 00181 00185 static void settingConsumerCallback(const DtSettingsObject* settingsObject, 00186 void* usr); 00189 virtual void readGlobalEnabledSetting(const DtBoolSetting* enabledSetting); 00190 00193 00194 static void hostilitiesChangedCallback(DtU8 force, void* usr); 00195 virtual void processHostilitiesChanged(DtU8 force); 00197 00202 virtual bool reportingEnabled() const; 00203 00204 protected: 00205 00214 00215 00216 00217 00218 00219 00220 00221 DtObjectTypesListOutputPort* myTypesToDetectOutputPort; 00223 00225 const DtSpotReportGeneratorControllerDescriptor* myDescriptor; 00226 00229 DtSpotReportGeneratorControllerPSR* myProcessState; 00230 00231 int myCurrentForceType; 00232 DtSensorContactInfoListChangeMonitor myContactListMonitor; 00233 00236 bool myHostilitiesChangeFlag; 00237 00240 bool myGlobalEnabled; 00241 }; 00242 00243 #endif