VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
rwList.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 #pragma once
9 
10 #include <vlutil/vlList.h>
11 #include "vrfutil/readerWriter.h"
12 #include "vrfutil/vrfutilDefines.h"
13 #include <boost/function.hpp>
14 
15 #include <set>
16 
17 class DtListItem;
18 
26 class DT_DLL_vrfutil DtRwList : public DtReaderWriter, public DtList
27 {
28 public:
30  {
31  RwObjectAdder(DtRwList* list) : myList(list) {}
32  void operator()(DtReaderWriter* rwObject)
33  {
34  myList->add(rwObject);
35  }
37  };
38 
40  DtRwList();
41 
43  DtRwList(const DtString& name, DtReaderWriterRegistry* parentRegistry = NULL);
44  DtRwList(const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry = NULL);
45 
50 
51  DtRwList(const DtString& name,
52  const DtRwList& orig,
53  DtReaderWriterRegistry* parentRegistry = NULL);
54 
55  DtRwList(const DtSymbolString& name,
56  const DtRwList& orig,
57  DtReaderWriterRegistry* parentRegistry = NULL);
59 
60  virtual ~DtRwList();
61 
63  const DtRwList & operator=(const DtRwList & orig);
64 
67  virtual DtListItem* add(DtReaderWriter* data);
68 
71  virtual DtListItem* addWithAlternateName(DtReaderWriter* data, const DtString& name);
72 
75  virtual DtListItem* addToStart(DtReaderWriter* data);
76 
79  virtual DtListItem* addToEnd(DtReaderWriter* data);
80 
86  virtual void* remove(DtReaderWriter* data, DtListItem* item);
87 
102  virtual DtlObjPtr getData(DtlObjPtr args,
103  const DtReaderWriter::SearchPaths& searchPaths,
104  const DtVariableBindingsList& variableBindings) = 0;
105 
109  virtual DtlObjPtr getLocalData(DtlObjPtr args);
110 
111  virtual void getSelf(DtlObjPtr args,
112  const DtReaderWriter::SearchPaths& searchPaths = SearchPaths(),
113  const DtVariableBindingsList& variableBindings = nullVariableReference());
114 
115  virtual void getSelf(const DtEnvironmentSP, const DtEnvValueSP root,
116  const SearchPaths& searchPaths = SearchPaths(),
117  const DtVariableBindingsList& bindings = DtVariableBindingsList());
118 
121 
122  virtual DtListItem* addBefore (DtReaderWriter* data, const DtString& before);
123  virtual DtListItem* addBefore (DtReaderWriter* data, const DtSymbolString& before);
125 
128 
129  virtual DtListItem* addAfter(DtReaderWriter* data, const DtString& after);
130  virtual DtListItem* addAfter(DtReaderWriter* data, const DtSymbolString& after);
132 
135  virtual DtListItem* addBefore (DtReaderWriter* data, DtReaderWriter* before);
136 
139  virtual DtListItem* addAfter(DtReaderWriter* data, DtReaderWriter* after);
140 
142  virtual void removeAll();
143 
145  virtual void removeAndDeleteAll();
146 
148  virtual void reset();
149 
153  virtual const char* readerWriterType() const;
154 
156  bool operator==(const DtRwList& rhs) const;
157  bool operator!=(const DtRwList& rhs) const { return !(*this == rhs); };
158 
161  virtual void putData(DtEnvironmentSP, DtEnvValueSP parent) const;
162  virtual void getData(const DtEnvironmentSP, const DtEnvValueSP value,
164  const DtVariableBindingsList& bindings = DtVariableBindingsList());
165 
167  static const char* theXmlType();
168 
169  virtual const char* xmlType() const
170  {
171  return theXmlType();
172  }
173 
175  virtual std::set<DtString> supportedXmlTypes() const;
177 
178  //Populaetes list by looking up all known xml types.
179  virtual void populateList(
180  boost::function<void (DtReaderWriter*)> addFunction,
181  DtEnvironmentSP env, DtEnvValueSP node,
182  const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& bindings);
183 
184  virtual void populateListByType(
185  boost::function<void (DtReaderWriter*)> addFunction,
186  DtEnvironmentSP env, DtEnvValueSP node, const DtString& bindingType,
187  const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& bindings);
188 
189 protected:
192  virtual DtListItem* addBefore (DtReaderWriter* data, DtListItem* before);
193 
196  virtual DtListItem* addAfter(DtReaderWriter* data, DtListItem* after);
197 
198 };
199 
200 

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)