VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
assembliesReaderWriter.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MaK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #if !defined(Q_MOC_RUN)
12 #include "vrfutil/vrfutilDefines.h"
15 #include <mtl/envObject.h>
16 #endif
17 
18 #include <string>
19 #include <map>
20 
21 class DtFilename;
22 
25 {
26 public:
27  class RwValue;
28 
29  class RootNodeContainer;
30 
32  {
33  public:
35  RwRootNode(const DtString& rwName = "rootNode", DtReaderWriterRegistry* parentRegistry = 0);
36 
38  RwRootNode(const RwRootNode& name, DtReaderWriterRegistry* parentRegistry = 0);
39 
40  virtual ~RwRootNode() override;
41 
42  bool operator==(const RwRootNode& rhs) const;
43 
47  virtual const char* readerWriterType() const override;
48 
50  static const char* theXmlType();
51 
52  virtual const char* xmlType() const override
53  {
54  return theXmlType();
55  }
56 
57  RwRootNode& operator=(const RwRootNode&);
58 
59  virtual void clear();
60 
62  virtual RwRootNode* find(const DtString& keyword) const;
63 
67  virtual bool collectAllItemsOfType(const std::string&, RwRootNode&) const;
68 
70  virtual RwRootNode* findByRwName(const DtString& name) const;
71 
73  virtual std::map<DtString, RwRootNode*> keywordMap() const;
74 
76  virtual std::map<DtString, RwRootNode*> displayNameMap() const;
77 
78  virtual void setAttributes(const std::map<std::string, std::string>&);
79  virtual std::map<std::string, std::string> attributesMap() const;
80 
82  virtual RwRootNode* findByNameAndKeyword(const DtString& rwName, const DtString& keyword) const;
83 
84  virtual DtString findAttributeValue(const std::string& keyword) const;
85  virtual void addAttribute(const DtString& kw, const DtString& val);
86  virtual void removeAttribute(const DtString& kw);
87  virtual void getSelf(const DtEnvironmentSP env, const DtEnvValueSP root,
88  const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& varBindings) override;
89  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
90  const DtVariableBindingsList& variableBindings) override
91  {
92  DtReaderWriter::getSelf(args, searchPaths, variableBindings);
93  }
94 
95  int count() const
96  {
97  return myRegistry.registryData().size();
98  }
99 
101  void setIncluded(bool b) { myIncluded = b; };
102  bool included() const { return myIncluded; };
103 
104  DtRwString myDisplayName;
107 
109  bool myIncluded = false;
110  };
111 
112  class DT_DLL_vrfutil RootNodeContainer : public DtRwTemplatedListPtr<RwRootNode, true>
113  {
114  public:
115  RootNodeContainer(const DtString& = "rootNodeContainer", DtReaderWriterRegistry* parent = 0);
117  virtual ~RootNodeContainer() override;
118 
119  bool operator==(const RootNodeContainer& orig) const
120  {
121  return (*(static_cast<const DtRwTemplatedListPtr<RwRootNode, true>*>(this)) == orig);
122  }
123 
125  {
126  if (this != &rhs)
127  {
128  (*(static_cast<DtRwTemplatedListPtr<RwRootNode, true>*>(this)) = rhs);
129  }
130 
131  return *this;
132  }
133 
135  virtual std::map<DtString, RwRootNode*> keywordMap() const;
136 
138  virtual std::map<DtString, RwRootNode*> displayNameMap() const;
139 
141  virtual RwRootNode* find(const DtString& keyword) const;
142 
144  virtual RwRootNode* findByRwName(const DtString& name) const;
145 
147  virtual RwRootNode* findByNameAndKeyword(const DtString& rwName, const DtString& keyword) const;
148  };
149 
151  DtAssembliesReaderWriter(const DtString& rwName = "assemblies", DtReaderWriterRegistry* parentRegistry = 0);
152 
155 
158 
159  virtual ~DtAssembliesReaderWriter() override;
160 
162  virtual bool load(const DtFilename&);
163 
165  virtual bool save(const DtFilename&);
166 
169  virtual DtString displayNameForKeyword(const DtString&,
170  DtString* module = 0) const;
171 
173  virtual void setAssembliesRootNodes(const RootNodeContainer& a);
174  virtual const RootNodeContainer& assembliesRootNodes() const;
175  virtual RootNodeContainer& assembliesRootNodes();
176 
178  virtual void setAmmunitionRootNodes(const RootNodeContainer& a);
179  virtual const RootNodeContainer& ammunitionRootNodes() const;
180  virtual RootNodeContainer& ammunitionRootNodes();
181 
183  virtual void setWeaponRootNodes(const RootNodeContainer& a);
184  virtual const RootNodeContainer& weaponRootNodes() const;
185  virtual RootNodeContainer& weaponRootNodes();
186 
188  virtual void setEquipmentRootNodes(const RootNodeContainer& a);
189  virtual const RootNodeContainer& equipmentRootNodes() const;
190  virtual RootNodeContainer& equipmentRootNodes();
191 
193  virtual void setVariableRootNodes(const RootNodeContainer& a);
194  virtual const RootNodeContainer& variableRootNodes() const;
195  virtual RootNodeContainer& variableRootNodes();
196 
200  virtual const char* readerWriterType() const override;
201 
203  static const char* theXmlType();
204 
205  virtual const char* xmlType() const override
206  {
207  return theXmlType();
208  }
209 
211  virtual void clear();
212 
214  virtual std::map<std::string, std::string> ammunition() const;
215 
217  virtual std::map<std::string, std::string> equipment() const;
218 
220  virtual std::map<std::string, std::string> variables() const;
221 
223  virtual std::map<std::string, std::string> weapons() const;
224 
226  virtual std::map<std::string, std::string> assemblies() const;
227 
229  virtual RwRootNode* rootNodeFor(const DtString&) const;
230 
232  virtual const RwRootNode& rollUpRules() const;
233  virtual RwRootNode& rollUpRules();
234  virtual void addRollUpRule(const std::string& rule, const std::string& element,
235  const std::map<std::string, std::string>& attributes = std::map<std::string, std::string>());
236  virtual bool rollUpRuleFor(const DtString& variable, DtString& rule, std::map<std::string, std::string>& attributes) const;
237  virtual void setRollUpRules(const RwRootNode&);
238 
239 protected:
240 
242  virtual std::map<std::string, std::string> convertToMap(const RootNodeContainer&) const;
243 
244 protected:
251 };
void setIncluded(bool b)
Included is true if this item is included as part of a parent SMS.
Definition: assembliesReaderWriter.h:101
virtual DtRwTemplatedListPtr & operator=(const DtRwTemplatedListPtr &orig)
RwRootNode myRollUpRules
Definition: assembliesReaderWriter.h:250
RootNodeContainer myAmmunitionRootNodes
Definition: assembliesReaderWriter.h:245
RootNodeContainer myWeaponRootNodes
Definition: assembliesReaderWriter.h:248
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
Definition: readerWriter.h:85
bool operator==(const RootNodeContainer &orig) const
Definition: assembliesReaderWriter.h:119
Description: Readable, Writable DtString Variable substitutions are done on this object when it is re...
Definition: rwString.h:20
Definition: assembliesReaderWriter.h:31
Definition: assembliesReaderWriter.h:112
RootNodeContainer myAssemblyRootNodes
Definition: assembliesReaderWriter.h:249
static const char * theXmlType()
Definition: rwTemplatedList.h:109
Definition: readerWriterRegistry.h:39
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) override
Top level to read itself from an input stream. searchPath is passed down to all DtReaderWriter member...
Definition: assembliesReaderWriter.h:89
virtual const char * xmlType() const override
Definition: assembliesReaderWriter.h:52
int count() const
Definition: assembliesReaderWriter.h:95
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
virtual const char * xmlType() const override
Definition: assembliesReaderWriter.h:205
DtRwTemplatedStringList myAttributes
Definition: assembliesReaderWriter.h:106
RootNodeContainer * myChildren
Definition: assembliesReaderWriter.h:108
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
Top level to read itself from an input stream. searchPath is passed down to all DtReaderWriter member...
RootNodeContainer myEquipmentRootNodes
Definition: assembliesReaderWriter.h:246
Definition: rwTemplatedList.h:163
Definition: rwTemplatedList.h:34
virtual const char * readerWriterType() const override
Used to supply a string type that this reader writer type is. This can be used in place of dynamic-ca...
#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
DtRwString myKeyword
Definition: assembliesReaderWriter.h:105
DT_DLL_readerWriter std::shared_ptr< DtEnvironment > DtEnvironmentSP
Definition: readerWriter.h:30
This class will read ammunition, entity, weapons and assemblies and provide information about them...
Definition: assembliesReaderWriter.h:24
RootNodeContainer & operator=(const RootNodeContainer &rhs)
Definition: assembliesReaderWriter.h:124
RootNodeContainer myVariableRootNodes
Definition: assembliesReaderWriter.h:247

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)