![]() |
VR-Forces 4.0.4 Class Documentation
|
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)