VR-Forces 4.3.1 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 
117 
118  virtual DtListItem* addBefore (DtReaderWriter* data, const DtString& before);
119  virtual DtListItem* addBefore (DtReaderWriter* data, const DtSymbolString& before);
121 
124 
125  virtual DtListItem* addAfter(DtReaderWriter* data, const DtString& after);
126  virtual DtListItem* addAfter(DtReaderWriter* data, const DtSymbolString& after);
128 
131  virtual DtListItem* addBefore (DtReaderWriter* data, DtReaderWriter* before);
132 
135  virtual DtListItem* addAfter(DtReaderWriter* data, DtReaderWriter* after);
136 
138  virtual void removeAll();
139 
141  virtual void removeAndDeleteAll();
142 
144  virtual void reset();
145 
149  virtual const char* readerWriterType() const;
150 
152  bool operator==(const DtRwList& rhs) const;
153  bool operator!=(const DtRwList& rhs) const { return !(*this == rhs); };
154 
157  virtual void putData(DtEnvironmentSP, DtEnvValueSP parent) const;
158  virtual void getData(const DtEnvironmentSP, const DtEnvValueSP value,
160  const DtVariableBindingsList& bindings = DtVariableBindingsList());
161 
163  static const char* theXmlType();
164 
165  virtual const char* xmlType() const
166  {
167  return theXmlType();
168  }
169 
171  virtual std::set<DtString> supportedXmlTypes() const;
173 
174  //Populaetes list by looking up all known xml types.
175  virtual void populateList(
176  boost::function<void (DtReaderWriter*)> addFunction,
177  DtEnvironmentSP env, DtEnvValueSP node,
178  const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& bindings);
179 
180  virtual void populateListByType(
181  boost::function<void (DtReaderWriter*)> addFunction,
182  DtEnvironmentSP env, DtEnvValueSP node, const DtString& bindingType,
183  const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& bindings);
184 
185 protected:
188  virtual DtListItem* addBefore (DtReaderWriter* data, DtListItem* before);
189 
192  virtual DtListItem* addAfter(DtReaderWriter* data, DtListItem* after);
193 
194 };
195 
196 

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)