VR-Forces 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) 2025 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() override;
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, const DtReaderWriter::SearchPaths &searchPaths,
103  const DtVariableBindingsList &variableBindings) override = 0;
104 
108  virtual DtlObjPtr getLocalData(DtlObjPtr args);
109 
110  virtual void getSelf(DtlObjPtr args,
111  const DtReaderWriter::SearchPaths &searchPaths = SearchPaths(),
112  const DtVariableBindingsList &variableBindings =
113  nullVariableReference()) override;
114 
115  virtual void getSelf(const DtEnvironmentSP, const DtEnvValueSP root,
116  const SearchPaths &searchPaths = SearchPaths(),
117  const DtVariableBindingsList &bindings =
118  DtVariableBindingsList()) override;
119 
122 
123  virtual DtListItem* addBefore (DtReaderWriter* data, const DtString& before);
124  virtual DtListItem* addBefore (DtReaderWriter* data, const DtSymbolString& before);
126 
129 
130  virtual DtListItem* addAfter(DtReaderWriter* data, const DtString& after);
131  virtual DtListItem* addAfter(DtReaderWriter* data, const DtSymbolString& after);
133 
136  virtual DtListItem* addBefore (DtReaderWriter* data, DtReaderWriter* before);
137 
140  virtual DtListItem* addAfter(DtReaderWriter* data, DtReaderWriter* after);
141 
143  virtual void removeAll();
144 
146  virtual void removeAndDeleteAll();
147 
149  virtual void reset() override;
150 
154  virtual const char *readerWriterType() const override;
155 
157  bool operator==(const DtRwList& rhs) const;
158  bool operator!=(const DtRwList& rhs) const { return !(*this == rhs); };
159 
162  virtual void putData(DtEnvironmentSP, DtEnvValueSP parent) const override;
163  virtual void getData(const DtEnvironmentSP, const DtEnvValueSP value,
164  const DtReaderWriter::SearchPaths &searchPaths =
166  const DtVariableBindingsList &bindings =
167  DtVariableBindingsList()) override;
168 
170  static const char* theXmlType();
171 
172  virtual const char *xmlType() const override {
173  return theXmlType();
174  }
175 
177  virtual std::set<DtString> supportedXmlTypes() const;
179 
180  //Populates list by looking up all known xml types.
181  virtual void populateList(
182  boost::function<void (DtReaderWriter*)> addFunction,
183  DtEnvironmentSP env, DtEnvValueSP node,
184  const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& bindings);
185 
186  virtual void populateListByType(
187  boost::function<void (DtReaderWriter*)> addFunction,
188  DtEnvironmentSP env, DtEnvValueSP node, const DtString& bindingType,
189  const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& bindings);
190 
191 protected:
194  virtual DtListItem* addBefore (DtReaderWriter* data, DtListItem* before);
195 
198  virtual DtListItem* addAfter(DtReaderWriter* data, DtListItem* after);
199 
200 };
201 
202 
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
virtual const char * xmlType() const override
Routines to archive/dearchive from an XML Environment.
Definition: rwList.h:172
This class allows one to collect and compare strings using an index number instead of having to do st...
Definition: symbolString.h:27
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:158
RwObjectAdder(DtRwList *list)
Definition: rwList.h:31
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 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.
DT_DLL_readerWriter std::shared_ptr< DtEnvironment > DtEnvironmentSP
Definition: readerWriter.h:30
void operator()(DtReaderWriter *rwObject)
Definition: rwList.h:32

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)