![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2012 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00008 00014 00015 #pragma once 00016 00017 #include <vrvUtil/signalslib.h> 00018 #include <vrfGuiCore/vrfGuiCore.h> 00019 00020 #include <vrvUtil/DtVirtualBaseClass.h> 00021 00022 #include <vrvCore/DtSimEntry.h> 00023 00024 #include <vector> 00025 00026 namespace makVrv 00027 { 00028 class DtDe; 00029 class DtSimObjectEntry; 00030 } 00031 00032 class DtVrfObjectMessage; 00033 00034 namespace makVrf 00035 { 00037 class DT_DLL_VRFGUICORE DtRadarModeRequestor : public makVrv::DtVirtualBaseClass 00038 { 00039 protected: 00041 struct DtRadarModeDataRecord 00042 { 00043 std::map<int, std::string> emitIdCurrModeMap; 00044 std::map<int, std::vector<std::string> > emitIdModesMap; 00045 }; 00046 00047 public: 00049 virtual ~DtRadarModeRequestor(); 00050 00052 static DtRadarModeRequestor& instance(makVrv::DtDe& de); 00053 00056 static void registerInstance(makVrv::DtDe& de, DtRadarModeRequestor* object); 00057 00059 virtual std::string currentModeFor(std::string entityName, int emitterId) const; 00060 00062 virtual std::vector<int> emitterIdsFor(std::string entityName) const; 00063 00065 virtual std::vector<std::string> radarModesFor(std::string entityName, int emitterId) const; 00066 00068 virtual bool hasRadarModesFor(std::string entityName) const; 00069 00073 virtual int groupIdsAndModes(std::vector<std::string> entities, 00074 std::vector<int>& returnIds, 00075 std::vector<std::string>& returnModes); 00076 00080 virtual int groupModes(std::vector<std::string> entities, 00081 int emitterId, 00082 std::vector<std::string>& returnModes); 00083 00085 virtual void updateRadarModes(std::string entityName); 00086 00088 boost::signal<void (std::string, int)> signal_radarModesReceived; 00089 00090 00091 protected: 00093 DtRadarModeRequestor(makVrv::DtDe&); 00094 00096 virtual void slot_onSimDataRemoved(makVrv::DtSimObjectEntry&); 00097 00100 virtual void processRadarModes(const DtVrfObjectMessage* msg); 00101 00102 makVrv::DtDe& myDe; 00103 std::map<std::string, DtRadarModeDataRecord> myEntitiesTable; 00104 }; 00105 }