VR-Forces 4.0.4 Class Documentation
include/vrfGuiCore/DtSpotReportDataProcessor.h
Go to the documentation of this file.
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 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)