VR-Forces 4.0.4 Class Documentation
include/vrfGuiCore/DtGuiScenarioSettingsManager.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2012 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtGuiScenarioSettingsManager.h,v $ $Revision: 1.1 $ $State: Exp $
00007 ******************************************************************************/
00008 
00011 
00013 
00014 #include <boost/serialization/access.hpp>
00015 #include <boost/serialization/nvp.hpp>
00016 #include <boost/archive/xml_iarchive.hpp>
00017 #include <boost/archive/xml_oarchive.hpp>
00018 
00019 #pragma once
00020 
00021 #include <vrvUtil/DtVirtualBaseClass.h>
00022 #include <vrfGuiCore/vrfGuiCore.h>
00023 
00024 #include <vrvCore/DtDe.h>
00025 
00026 namespace makVrf
00027 {
00029    class DT_DLL_VRFGUICORE DtGuiSetting : public makVrv::DtVirtualBaseClass
00030    {
00031    public:
00032       virtual void write(boost::archive::xml_oarchive& ar, int version) const = 0;
00033       virtual void read(boost::archive::xml_iarchive& ar, int version) = 0;
00034    };
00035 
00038    class DT_DLL_VRFGUICORE DtGuiScenarioSettingsManager : public makVrv::DtVirtualBaseClass
00039    {
00040    public:
00041       DtGuiScenarioSettingsManager(makVrv::DtDe&);
00042       virtual ~DtGuiScenarioSettingsManager();
00043 
00045       static DtGuiScenarioSettingsManager& instance(makVrv::DtDe& de);
00046       static void registerInstance(makVrv::DtDe&, DtGuiScenarioSettingsManager*);
00047 
00048       virtual void addGuiSetting(const std::string& type, DtGuiSetting* setting);
00049       virtual void removeGuiSetting(const std::string& type);
00050 
00052       virtual void save(const std::string& filename);
00053 
00055       virtual void load(const std::string& filename);
00056 
00057    protected:
00058 
00059       friend class boost::serialization::access;
00060 
00064       template<class Archive>
00065       void serialize(Archive & ar, const unsigned int version)
00066       {
00067          if (Archive::is_loading::value)
00068          {
00069             GuiSettings::iterator iter = myGuiSettings.begin();
00070 
00071             while (iter != myGuiSettings.end())
00072             {
00073                (*iter).second->read(*(boost::archive::xml_iarchive*)&ar,version);
00074                ++iter;
00075             }
00076          }
00077          else
00078          {
00079             GuiSettings::const_iterator iter = myGuiSettings.begin();
00080 
00081             while (iter != myGuiSettings.end())
00082             {
00083                (*iter).second->write(*(boost::archive::xml_oarchive*)&ar,version);
00084                ++iter;
00085             }
00086          }
00087       }
00088 
00089    protected:
00090       makVrv::DtDe& myDe;
00091 
00092       typedef std::pair<std::string, DtGuiSetting*> GuiSetting;
00093       typedef std::vector<GuiSetting> GuiSettings;
00094 
00095       GuiSettings myGuiSettings;
00096    };
00097 }

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)