VR-Forces 4.0.4 Class Documentation
include/vrfutil/vrfPluginRecord.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: vrfPluginRecord.h,v $ $Revision: 1.1 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00016 
00017 #pragma once
00018 
00019 #include "vrfutil/vrfutilDefines.h"
00020 
00021 #include <boost/serialization/access.hpp>
00022 #include <boost/serialization/nvp.hpp>
00023 #include <boost/serialization/list.hpp>
00024 #include <boost/serialization/map.hpp>
00025 #include <boost/serialization/vector.hpp>
00026 #include <boost/serialization/string.hpp>
00027 
00028 class DT_DLL_vrfutil DtVrfPluginRecord
00029 {
00030 public:
00032    typedef std::map<std::string, std::string>               PluginData;
00033    
00035    typedef std::map<std::string, PluginData>                TransportConfigurationMap;
00036 
00038    typedef std::map<std::string, TransportConfigurationMap>  BuildConfigurationMap;
00039 
00041    typedef std::map<std::string, BuildConfigurationMap>  PlatformMap;
00042 
00044    typedef std::map<std::string, PlatformMap>        PluginMap;
00045 
00046 public:
00047 
00049    DtVrfPluginRecord();
00050    DtVrfPluginRecord(const DtVrfPluginRecord&);
00051 
00053    virtual ~DtVrfPluginRecord();
00054 
00056    virtual bool load(const std::string& file);
00057 
00059    virtual bool save(const std::string& file);
00060    virtual bool save();
00061 
00062    virtual const std::string& file() const;
00063 
00064    DtVrfPluginRecord& operator=(const DtVrfPluginRecord&);
00065 
00067    virtual std::string name() const;
00068 
00070    virtual bool rename(const std::string& newName);
00071 
00072    void setAutoSave(bool);
00073    bool autoSave() const;
00074 
00075 public:
00076    void setApplication(const std::string& application);
00077    virtual const std::string& application() const;
00078 
00079    void setPlatform(const std::string& platform);
00080    virtual const std::string& platform() const;
00081 
00082    void setTransport(const std::string& transport);
00083    virtual const std::string& transport() const;
00084 
00085    void setConfiguration(const std::string&);
00086    virtual const std::string& configuration() const;
00087 
00088    virtual std::string value(const std::string& key) const;
00089    virtual std::string value(const std::string& application,
00090       const std::string& platform, const std::string& configuration, const std::string& transport, const std::string& key) const;
00091 
00092    virtual std::string plugin() const;
00093    virtual std::string plugin(const std::string& application,
00094       const std::string& platform, const std::string& configuration, const std::string& transport) const;
00095 
00096    virtual bool loadPlugin() const;
00097    virtual bool loadPlugin(const std::string& application,
00098       const std::string& platform, const std::string& configuration, const std::string& transport) const;
00099 
00100    virtual void setPlugin(const std::string&);
00101    virtual void setPlugin(const std::string& application,
00102       const std::string& platform, const std::string& configuration, const std::string& transport, const std::string& plugin);
00103 
00105    virtual PluginData pluginData() const;
00106    virtual PluginData pluginData(const std::string& application,
00107       const std::string& platform, const std::string& configuration, const std::string& transport) const;
00108 
00109    virtual void setPluginData(const std::string& key, const std::string& value);
00110    virtual void setPluginData(const std::string& application,
00111       const std::string& platform, const std::string& configuration, const std::string& transport, const std::string& key,
00112       const std::string& value);
00113 
00116    virtual bool removePlugin();
00117    virtual bool removePlugin(const std::string& application,
00118       const std::string& platform, const std::string& configuration, const std::string& transport);
00119 
00122    virtual bool addPlugin(const std::string& application,
00123       const std::string& platform, const std::string& configuration, const std::string& transport);
00124 
00127    virtual bool removePluginData(const std::string& key);
00128    virtual bool removePluginData(const std::string& application,
00129       const std::string& platform, const std::string& configuration, const std::string& transport, const std::string& key);
00130 
00131    const PluginMap& pluginStructure() const;
00132 
00134    void setLoad(bool);
00135    virtual bool load() const;
00136 
00137 protected:
00138    friend class boost::serialization::access;
00139 
00143    template<class Archive>
00144       void serialize(Archive & ar, const unsigned int version)
00145    {
00146       ar & BOOST_SERIALIZATION_NVP(myPluginData);
00147       ar & BOOST_SERIALIZATION_NVP(myLoad);
00148    }
00149 
00150 protected:
00151    PluginMap            myPluginData;
00152 
00153    std::string          myPlatform;
00154    std::string          myConfiguration;
00155    std::string          myTransport;
00156    std::string          myApplication;
00157    std::string          myFile;
00158 
00159    bool                 myLoad;
00160    bool                 myAutoSave;
00161 };
00162 
00163 BOOST_CLASS_VERSION(DtVrfPluginRecord, 1)

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)