VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 #include "vrfutil/vrfutilDefines.h"
12 #include "vrfutil/readerWriter.h"
14 #include <mtl/envObject.h>
15 
16 #include <string>
17 #include <map>
18 
19 class DtFilename;
20 
23 {
24 public:
25  class RwValue;
26 
27  class RootNodeContainer;
28 
30  {
31  public:
33  RwRootNode(const DtString& rwName = "rootNode", DtReaderWriterRegistry* parentRegistry = 0);
34 
36  RwRootNode(const RwRootNode& name, DtReaderWriterRegistry* parentRegistry = 0);
37 
38  virtual ~RwRootNode();
39 
40  bool operator==(const RwRootNode& rhs) const;
41 
45  virtual const char* readerWriterType() const;
46 
48  static const char* theXmlType();
49 
50  virtual const char* xmlType() const
51  {
52  return theXmlType();
53  }
54 
55  RwRootNode& operator=(const RwRootNode&);
56 
57  virtual void clear();
58 
60  virtual RwRootNode* find(const DtString& keyword) const;
61 
65  virtual bool collectAllItemsOfType(const std::string&, RwRootNode&) const;
66 
68  virtual RwRootNode* findByRwName(const DtString& name) const;
69 
71  virtual std::map<DtString, RwRootNode*> keywordMap() const;
72 
74  virtual std::map<DtString, RwRootNode*> displayNameMap() const;
75 
76  virtual void setAttributes(const std::map<std::string, std::string>&);
77  virtual std::map<std::string, std::string> attributesMap() const;
78 
80  virtual RwRootNode* findByNameAndKeyword(const DtString& rwName, const DtString& keyword) const;
81 
82  virtual DtString findAttributeValue(const std::string& keyword) const;
83  virtual void addAttribute(const DtString& kw, const DtString& val);
84  virtual void removeAttribute(const DtString& kw);
85  virtual void getSelf(const DtEnvironmentSP env, const DtEnvValueSP root,
86  const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& varBindings);
87  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
88  const DtVariableBindingsList& variableBindings)
89  {
90  DtReaderWriter::getSelf(args, searchPaths, variableBindings);
91  }
92 
93  int count() const
94  {
95  return myRegistry.registryData().size();
96  }
97 
101 
103  };
104 
105  class DT_DLL_vrfutil RootNodeContainer : public DtRwTemplatedListPtr<RwRootNode, true>
106  {
107  public:
108  RootNodeContainer(const DtString& = "rootNodeContainer", DtReaderWriterRegistry* parent = 0);
110  virtual ~RootNodeContainer();
111 
112  bool operator==(const RootNodeContainer& orig) const
113  {
114  return (*(static_cast<const DtRwTemplatedListPtr<RwRootNode, true>*>(this)) == orig);
115  }
116 
117  RootNodeContainer& operator=(const RootNodeContainer& rhs)
118  {
119  if (this != &rhs)
120  {
121  (*(static_cast<DtRwTemplatedListPtr<RwRootNode, true>*>(this)) = rhs);
122  }
123 
124  return *this;
125  }
126 
128  virtual std::map<DtString, RwRootNode*> keywordMap() const;
129 
131  virtual std::map<DtString, RwRootNode*> displayNameMap() const;
132 
134  virtual RwRootNode* find(const DtString& keyword) const;
135 
137  virtual RwRootNode* findByRwName(const DtString& name) const;
138 
140  virtual RwRootNode* findByNameAndKeyword(const DtString& rwName, const DtString& keyword) const;
141  };
142 
144  DtAssembliesReaderWriter(const DtString& rwName = "assemblies", DtReaderWriterRegistry* parentRegistry = 0);
145 
148 
151 
152  virtual ~DtAssembliesReaderWriter();
153 
155  virtual bool load(const DtFilename&);
156 
158  virtual bool save(const DtFilename&);
159 
162  virtual DtString displayNameForKeyword(const DtString&,
163  DtString* module = 0) const;
164 
166  virtual void setAssembliesRootNodes(const RootNodeContainer& a);
167  virtual const RootNodeContainer& assembliesRootNodes() const;
168 
170  virtual void setAmmunitionRootNodes(const RootNodeContainer& a);
171  virtual const RootNodeContainer& ammunitionRootNodes() const;
172 
174  virtual void setWeaponRootNodes(const RootNodeContainer& a);
175  virtual const RootNodeContainer& weaponRootNodes() const;
176 
178  virtual void setEquipmentRootNodes(const RootNodeContainer& a);
179  virtual const RootNodeContainer& equipmentRootNodes() const;
180 
182  virtual void setVariableRootNodes(const RootNodeContainer& a);
183  virtual const RootNodeContainer& variableRootNodes() const;
184 
188  virtual const char* readerWriterType() const;
189 
191  static const char* theXmlType();
192 
193  virtual const char* xmlType() const
194  {
195  return theXmlType();
196  }
197 
199  virtual void clear();
200 
202  virtual std::map<std::string, std::string> ammunition() const;
203 
205  virtual std::map<std::string, std::string> equipment() const;
206 
208  virtual std::map<std::string, std::string> variables() const;
209 
211  virtual std::map<std::string, std::string> weapons() const;
212 
214  virtual std::map<std::string, std::string> assemblies() const;
215 
217  virtual RwRootNode* rootNodeFor(const DtString&) const;
218 
220  virtual const RwRootNode& rollUpRules() const;
221  virtual RwRootNode& rollUpRules();
222  virtual void addRollUpRule(const std::string& rule, const std::string& element,
223  const std::map<std::string, std::string>& attributes = std::map<std::string, std::string>());
224  virtual bool rollUpRuleFor(const DtString& variable, DtString& rule, std::map<std::string, std::string>& attributes) const;
225  virtual void setRollUpRules(const RwRootNode&);
226 
227 protected:
228 
230  virtual std::map<std::string, std::string> convertToMap(const RootNodeContainer&) const;
231 
232 protected:
239 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)