VR-Forces 4.10 Class Documentation
 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();
41 
42  bool operator==(const RwRootNode& rhs) const;
43 
47  virtual const char* readerWriterType() const;
48 
50  static const char* theXmlType();
51 
52  virtual const char* xmlType() const
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);
89  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
90  const DtVariableBindingsList& variableBindings)
91  {
92  DtReaderWriter::getSelf(args, searchPaths, variableBindings);
93  }
94 
95  int count() const
96  {
97  return myRegistry.registryData().size();
98  }
99 
103 
105  };
106 
107  class DT_DLL_vrfutil RootNodeContainer : public DtRwTemplatedListPtr<RwRootNode, true>
108  {
109  public:
110  RootNodeContainer(const DtString& = "rootNodeContainer", DtReaderWriterRegistry* parent = 0);
112  virtual ~RootNodeContainer();
113 
114  bool operator==(const RootNodeContainer& orig) const
115  {
116  return (*(static_cast<const DtRwTemplatedListPtr<RwRootNode, true>*>(this)) == orig);
117  }
118 
120  {
121  if (this != &rhs)
122  {
123  (*(static_cast<DtRwTemplatedListPtr<RwRootNode, true>*>(this)) = rhs);
124  }
125 
126  return *this;
127  }
128 
130  virtual std::map<DtString, RwRootNode*> keywordMap() const;
131 
133  virtual std::map<DtString, RwRootNode*> displayNameMap() const;
134 
136  virtual RwRootNode* find(const DtString& keyword) const;
137 
139  virtual RwRootNode* findByRwName(const DtString& name) const;
140 
142  virtual RwRootNode* findByNameAndKeyword(const DtString& rwName, const DtString& keyword) const;
143  };
144 
146  DtAssembliesReaderWriter(const DtString& rwName = "assemblies", DtReaderWriterRegistry* parentRegistry = 0);
147 
150 
153 
154  virtual ~DtAssembliesReaderWriter();
155 
157  virtual bool load(const DtFilename&);
158 
160  virtual bool save(const DtFilename&);
161 
164  virtual DtString displayNameForKeyword(const DtString&,
165  DtString* module = 0) const;
166 
168  virtual void setAssembliesRootNodes(const RootNodeContainer& a);
169  virtual const RootNodeContainer& assembliesRootNodes() const;
170  virtual RootNodeContainer& assembliesRootNodes();
171 
173  virtual void setAmmunitionRootNodes(const RootNodeContainer& a);
174  virtual const RootNodeContainer& ammunitionRootNodes() const;
175  virtual RootNodeContainer& ammunitionRootNodes();
176 
178  virtual void setWeaponRootNodes(const RootNodeContainer& a);
179  virtual const RootNodeContainer& weaponRootNodes() const;
180  virtual RootNodeContainer& weaponRootNodes();
181 
183  virtual void setEquipmentRootNodes(const RootNodeContainer& a);
184  virtual const RootNodeContainer& equipmentRootNodes() const;
185  virtual RootNodeContainer& equipmentRootNodes();
186 
188  virtual void setVariableRootNodes(const RootNodeContainer& a);
189  virtual const RootNodeContainer& variableRootNodes() const;
190  virtual RootNodeContainer& variableRootNodes();
191 
195  virtual const char* readerWriterType() const;
196 
198  static const char* theXmlType();
199 
200  virtual const char* xmlType() const
201  {
202  return theXmlType();
203  }
204 
206  virtual void clear();
207 
209  virtual std::map<std::string, std::string> ammunition() const;
210 
212  virtual std::map<std::string, std::string> equipment() const;
213 
215  virtual std::map<std::string, std::string> variables() const;
216 
218  virtual std::map<std::string, std::string> weapons() const;
219 
221  virtual std::map<std::string, std::string> assemblies() const;
222 
224  virtual RwRootNode* rootNodeFor(const DtString&) const;
225 
227  virtual const RwRootNode& rollUpRules() const;
228  virtual RwRootNode& rollUpRules();
229  virtual void addRollUpRule(const std::string& rule, const std::string& element,
230  const std::map<std::string, std::string>& attributes = std::map<std::string, std::string>());
231  virtual bool rollUpRuleFor(const DtString& variable, DtString& rule, std::map<std::string, std::string>& attributes) const;
232  virtual void setRollUpRules(const RwRootNode&);
233 
234 protected:
235 
237  virtual std::map<std::string, std::string> convertToMap(const RootNodeContainer&) const;
238 
239 protected:
246 };
RwRootNode myRollUpRules
Definition: assembliesReaderWriter.h:245
RootNodeContainer myAmmunitionRootNodes
Definition: assembliesReaderWriter.h:240
RootNodeContainer myWeaponRootNodes
Definition: assembliesReaderWriter.h:243
DT_DLL_readerWriter DtBoost::shared_ptr< DtEnvironment > DtEnvironmentSP
Definition: readerWriter.h:30
virtual const char * xmlType() const
Definition: assembliesReaderWriter.h:52
DtRwTemplatedListPtr & operator=(const DtRwTemplatedListPtr &orig)
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
Definition: readerWriter.h:85
bool operator==(const RootNodeContainer &orig) const
Definition: assembliesReaderWriter.h:114
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:107
RootNodeContainer myAssemblyRootNodes
Definition: assembliesReaderWriter.h:244
static const char * theXmlType()
Definition: rwTemplatedList.h:78
Definition: readerWriterRegistry.h:39
virtual const char * xmlType() const
Definition: assembliesReaderWriter.h:200
int count() const
Definition: assembliesReaderWriter.h:95
DtRwString myDisplayName
Definition: assembliesReaderWriter.h:100
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
Top level to read itself from an input stream.
Definition: assembliesReaderWriter.h:89
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DtRwTemplatedStringList myAttributes
Definition: assembliesReaderWriter.h:102
RootNodeContainer * myChildren
Definition: assembliesReaderWriter.h:104
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
Top level to read itself from an input stream.
const char * readerWriterType() const
Used to supply a string type that this reader writer type is.
RootNodeContainer myEquipmentRootNodes
Definition: assembliesReaderWriter.h:241
Definition: rwTemplatedList.h:133
A version of DtRwList that contains a homogeneous list of a templated RW type.
Definition: rwTemplatedList.h:26
#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:101
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:119
RootNodeContainer myVariableRootNodes
Definition: assembliesReaderWriter.h:242

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)