VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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>
13 #include <boost/function.hpp>
14 
15 #include <set>
16 
17 class DtListItem;
18 
26 class DT_DLL_readerWriter 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  //Populates 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 
bool operator==(const DtReaderWriter &) const
Equivalence operator.
virtual const char * readerWriterType() const
Used to supply a string type that this reader writer type is. This can be used in place of dynamic-ca...
#define DT_DLL_readerWriter
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: readerWriterDefines.h:34
Definition: symbolString.h:20
DtRwList * myList
Definition: rwList.h:36
A Readable, Writable version of DtList. This class cannot be used directly, but must be inherited to ...
Definition: rwList.h:26
bool operator!=(const DtRwList &rhs) const
Definition: rwList.h:157
RwObjectAdder(DtRwList *list)
Definition: rwList.h:31
DT_DLL_readerWriter DtBoost::shared_ptr< DtEnvironment > DtEnvironmentSP
Definition: readerWriter.h:30
virtual DtlObjPtr getData(DtlObjPtr args, const SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
Deriving class overrides these to get/put class specific data.
Definition: readerWriter.h:85
Definition: readerWriterRegistry.h:39
virtual void reset()
For those reader/writer items that support it, resets the reader/writer value to original state Defau...
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
Definition: rwList.h:29
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...
static const DtVariableBindingsList & nullVariableReference()
virtual const char * xmlType() const
Routines to archive/dearchive from an XML Environment.
Definition: rwList.h:169
virtual void putData(std::string &fp, int indentLevel=0)
Deriving class overrides these to get/put class specific data.
const DtReaderWriter & operator=(const DtReaderWriter &orig)
assignment operator
static const char * theXmlType()
The type that is used when archiving to an XML stream.
void operator()(DtReaderWriter *rwObject)
Definition: rwList.h:32

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)