VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfPluginRecord.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
13 
14 #pragma once
15 
16 #include "vrfutil/vrfutilDefines.h"
17 
18 #include <boost/serialization/access.hpp>
19 #include <boost/serialization/nvp.hpp>
20 #include <boost/serialization/list.hpp>
21 #include <boost/serialization/map.hpp>
22 #include <boost/serialization/vector.hpp>
23 #include <boost/serialization/string.hpp>
24 
26 {
27 public:
29  typedef std::map<std::string, std::string> PluginData;
30 
32  typedef std::map<std::string, PluginData> TransportConfigurationMap;
33 
35  typedef std::map<std::string, TransportConfigurationMap> BuildConfigurationMap;
36 
38  typedef std::map<std::string, BuildConfigurationMap> PlatformMap;
39 
41  typedef std::map<std::string, PlatformMap> PluginMap;
42 
43 public:
44 
48 
50  virtual ~DtVrfPluginRecord();
51 
53  virtual bool load(const std::string& file);
54 
56  virtual bool save(const std::string& file);
57  virtual bool save();
58 
59  virtual const std::string& file() const;
60 
61  DtVrfPluginRecord& operator=(const DtVrfPluginRecord&);
62 
64  virtual std::string name() const;
65 
67  virtual bool rename(const std::string& newName);
68 
69  void setAutoSave(bool);
70  bool autoSave() const;
71 
72 public:
73  void setApplication(const std::string& application);
74  virtual const std::string& application() const;
75 
76  void setPlatform(const std::string& platform);
77  virtual const std::string& platform() const;
78 
79  void setTransport(const std::string& transport);
80  virtual const std::string& transport() const;
81 
82  void setConfiguration(const std::string&);
83  virtual const std::string& configuration() const;
84 
85  virtual std::string value(const std::string& key) const;
86  virtual std::string value(const std::string& application,
87  const std::string& platform, const std::string& configuration, const std::string& transport, const std::string& key) const;
88 
89  virtual std::string plugin() const;
90  virtual std::string plugin(const std::string& application,
91  const std::string& platform, const std::string& configuration, const std::string& transport) const;
92 
93  virtual bool loadPlugin() const;
94  virtual bool loadPlugin(const std::string& application,
95  const std::string& platform, const std::string& configuration, const std::string& transport) const;
96 
97  virtual void setPlugin(const std::string&);
98  virtual void setPlugin(const std::string& application,
99  const std::string& platform, const std::string& configuration, const std::string& transport, const std::string& plugin);
100 
102  virtual PluginData pluginData() const;
103  virtual PluginData pluginData(const std::string& application,
104  const std::string& platform, const std::string& configuration, const std::string& transport) const;
105 
106  virtual void setPluginData(const std::string& key, const std::string& value);
107  virtual void setPluginData(const std::string& application,
108  const std::string& platform, const std::string& configuration, const std::string& transport, const std::string& key,
109  const std::string& value);
110 
113  virtual bool removePlugin();
114  virtual bool removePlugin(const std::string& application,
115  const std::string& platform, const std::string& configuration, const std::string& transport);
116 
119  virtual bool addPlugin(const std::string& application,
120  const std::string& platform, const std::string& configuration, const std::string& transport);
121 
124  virtual bool removePluginData(const std::string& key);
125  virtual bool removePluginData(const std::string& application,
126  const std::string& platform, const std::string& configuration, const std::string& transport, const std::string& key);
127 
128  const PluginMap& pluginStructure() const;
129 
131  void setLoad(bool);
132  virtual bool load() const;
133 
134 protected:
135  virtual void clearConfigurationsFrom(const std::string& application);
136  virtual void duplicateProtocolConfiguration(const std::string& application, const std::string& sourceProtocol, const std::string& destinationProtocol);
137  virtual void removeProtocol(const std::string& application, const std::string& protocol);
138 
139 protected:
140  friend class boost::serialization::access;
141 
145  template<class Archive>
146  void serialize(Archive & ar, const unsigned int version)
147  {
148  myVersion = version;
149  ar & BOOST_SERIALIZATION_NVP(myPluginData);
150  ar & BOOST_SERIALIZATION_NVP(myLoad);
151  }
152 
153 protected:
155  unsigned int myVersion = 2;
156  std::string myPlatform;
157  std::string myConfiguration;
158  std::string myTransport;
159  std::string myApplication;
160  std::string myFile;
161 
162  bool myLoad;
164 };
165 
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
std::string myTransport
Definition: vrfPluginRecord.h:158
std::string myApplication
Definition: vrfPluginRecord.h:159
std::string myFile
Definition: vrfPluginRecord.h:160
std::string myConfiguration
Definition: vrfPluginRecord.h:157
std::map< std::string, PlatformMap > PluginMap
Map by application (vrfSim, vrfGui, etc.)
Definition: vrfPluginRecord.h:41
std::map< std::string, BuildConfigurationMap > PlatformMap
Map by platform (windows, irix, linux, etc.)
Definition: vrfPluginRecord.h:38
std::string myPlatform
Definition: vrfPluginRecord.h:156
bool myAutoSave
Definition: vrfPluginRecord.h:163
PluginMap myPluginData
Definition: vrfPluginRecord.h:154
class DtVrfPluginRecord:
Definition: vrfPluginRecord.h:25
bool myLoad
Definition: vrfPluginRecord.h:162
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
std::map< std::string, std::string > PluginData
Plugin data map (keyword/value pairs)
Definition: vrfPluginRecord.h:29
std::map< std::string, TransportConfigurationMap > BuildConfigurationMap
Map by build configuration (release, debug or any)
Definition: vrfPluginRecord.h:35
std::map< std::string, PluginData > TransportConfigurationMap
Map by protocol (DIS, HLA13, HLA1516 or Independent)
Definition: vrfPluginRecord.h:32
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the &amp; operator is defined similar to &lt;&lt;...
Definition: vrfPluginRecord.h:146

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)