![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtSpotReportDataProcessor.h,v $ $Revision: 1.12 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00026 00029 00030 #pragma once 00031 00032 #include <vrfGuiCore/vrfGuiCore.h> 00033 00034 #include <vrvUtil/signalslib.h> 00035 #include <vrvCore/DtUniqueID.h> 00036 #include <vrvCore/DtSimDataProcessorInterface.h> 00037 #include <vrvCore/DtSimEntryUpdater.h> 00038 #include <vrvUtil/DtBalancedUpdater.h> 00039 #include <vrvUtil/DtSignalConnectionManager.h> 00040 00041 #include <boost/bind.hpp> 00042 00043 namespace makVrv 00044 { 00045 class DtDe; 00046 class DtSimEntryObjectAgent; 00047 class DtSimObjectEntry; 00048 } 00049 00050 namespace makVrf 00051 { 00052 class DtSpotReportDataHandler; 00053 class DtSpotReportDataHandlerCreatorInterface; 00054 00055 class DT_DLL_VRFGUICORE DtSpotReportDataProcessor : public makVrv::DtSimDataProcessorInterface 00056 { 00057 public: 00058 00060 static DtSpotReportDataProcessor& instance(makVrv::DtDe& de); 00061 00063 void forceObjectUpdate(makVrv::DtUniqueID uniqueId); 00064 00065 public: 00068 virtual void addSpotReportHandler(const std::string& s, DtSpotReportDataHandlerCreatorInterface*); 00069 00070 virtual void removeSpotReportHandler(const std::string& s); 00071 00076 virtual std::string addOrUpdateSpotReport(const std::string& type, void* data, const std::string& key = ""); 00077 00079 virtual void removeSpotReport(makVrv::DtUniqueID id); 00080 00082 virtual void removeAllSpotReports(); 00083 00084 protected: 00085 virtual DtSpotReportDataHandler* createSpotReportHandler(const std::string& s, makVrv::DtUniqueID) const; 00086 00089 virtual std::string createSpotReport(const std::string& type, void* data, const std::string& key = ""); 00090 00091 protected: 00093 virtual void processForceUpdateList(); 00094 00097 virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry& entry); 00098 00099 protected: 00101 DtSpotReportDataProcessor(makVrv::DtDe& sim); 00102 00104 virtual ~DtSpotReportDataProcessor(); 00105 00106 protected: 00107 typedef std::vector<makVrv::DtUniqueID> SpotReportIdList; 00108 typedef std::map<std::string, DtSpotReportDataHandlerCreatorInterface*> SpotReportHandlerCreators; 00109 typedef std::map<std::string, DtSpotReportDataHandler*> SpotReportHandlers; 00110 typedef std::map<makVrv::DtUniqueID, DtSpotReportDataHandler*> SpotReportHandlersById; 00111 00112 makVrv::DtDe& myDe; 00113 makVrv::DtSimEntryObjectAgent* mySimEntryAgent; 00114 makVrv::DtSignalConnectionManager myConnections; 00115 SpotReportIdList myForceUpdateList; 00116 SpotReportHandlerCreators mySpotReportHandlerCreators; 00117 SpotReportHandlers mySpotReportHandlers; 00118 SpotReportHandlersById mySpotReportHandlersById; 00119 00121 SpotReportHandlersById myNeedsUpdateOnAdd; 00122 }; 00123 }