VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rwPropertiesList.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 
14 
39 {
40 private:
43 
44 public:
45 
48  DtRwPropertiesList(const DtString& name, DtReaderWriterRegistry* parentRegistry = 0);
49  DtRwPropertiesList(const DtString& name, const DtPropertyInterface* prototype,
50  DtReaderWriterRegistry* parentRegistry = 0);
51  DtRwPropertiesList(const DtString& name, const DtRwPropertiesList& orig,
52  DtReaderWriterRegistry* parentRegistry = 0);
53  virtual ~DtRwPropertiesList();
55 
64  virtual bool addItem(DtPropertyInterface* item);
65 
73  virtual DtPropertyInterface* addItem();
75 
79  virtual void erase(DtPropertyInterface* item);
80 
90  virtual void erase(iterator pos);
92 
95  virtual const char* readerWriterType() const;
96 
98  static const char* theXmlType();
99 
100  virtual const char* xmlType() const
101  {
102  return theXmlType();
103  }
104 
106  virtual char* encode(char*) const;
107 
109  virtual const char* decode(const char*);
110 
112  virtual bool isValidProperty(const DtPropertyInterface*) const;
113 
115  virtual int count() const;
116 
118  virtual void getSelf(DtlObjPtr args,
120  const DtVariableBindingsList& variableBindings = nullVariableReference());
121 
122  virtual void writeSelf(std::string& fp, int indentLevel = 0,
123  bool writeUnspecified = false, const DtFilename& path =
124  DtFilename::nullFilename());
125  virtual void writeData(std::string& fp, int indentLevel = 0,
126  bool writeUnspecified = false, const DtFilename& path =
127  DtFilename::nullFilename());
128 
130  virtual void setPrototype(const DtPropertyInterface*);
131 
133  virtual const DtPropertyInterface* prototype() const;
134 
136  virtual DtPropertyInterface* clonePrototype(DtReaderWriterRegistry* parent = 0);
137 
139 
141  virtual void getSize(int& size) const;
142 
144  virtual bool isSimilarProperty(const DtPropertyInterface* rhs, bool strict = true) const;
145 
146  bool operator==(const DtRwPropertiesList&) const;
147 
148  virtual bool matchPrototype(const DtReaderWriter*) const;
149 
150 protected:
151  virtual void writePrototype(const DtReaderWriter*, std::string& fp, int indentLevel, bool writeHeader = true) const;
152  virtual void bindToRwAsVariable(const DtReaderWriter* rw);
153 
154  virtual void createListEntry(DtPropertyInterface* iFace,
155  DtlObjPtr variableItem,
156  const DtReaderWriter::SearchPaths& searchPaths,
157  const DtVariableBindingsList& variableBindings);
158 
159  virtual DtPropertyInterface* createPrototype(DtlObjPtr);
160  virtual DtlObjPtr variablesStart(DtlObjPtr args) const;
161 
163  virtual const char* decode(DtPropertyInterface*, const char*);
164 
165  virtual DtlObjPtr getData(DtlObjPtr variableList,
166  const DtReaderWriter::SearchPaths& searchPaths,
167  const DtVariableBindingsList& variableBindings);
168 
169  virtual int hlaAlignment(const DtPropertyInterface* field) const;
170  virtual void getData(const DtEnvironmentSP env, const DtEnvValueSP root,
171  const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& varBindings);
172  virtual void putData(DtEnvironmentSP, DtEnvValueSP value) const;
173 
174  virtual void assignPrototypeToChildren();
175 
176  virtual void setPrototypeIntoTarget(const DtPropertyInterface* prototype, DtReaderWriter* target);
177 
178  virtual void postWriteItem(std::string& fp, DtReaderWriter* rw, int indentLevel);
179  virtual void preWriteItem(std::string& fp, DtReaderWriter* rw, int indentLevel);
180 
181  virtual bool matchPrototype(const DtReaderWriter* prototype, const DtReaderWriter* match) const;
182 
184  virtual void cloneAndAddProperty(const DtReaderWriter& rw);
185 
186 protected:
189 };
DtRwProperties & operator=(const DtRwProperties &orig)
#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 void cloneAndAddProperty(const DtReaderWriter &rw)
Clones the given RW and tries to add it to this list.
DT_DLL_readerWriter DtBoost::shared_ptr< DtEnvironment > DtEnvironmentSP
Definition: readerWriter.h:30
voidpf void uLong size
Definition: ioapi.h:39
Definition: readerWriter.h:85
Definition: readerWriterRegistry.h:39
virtual const char * xmlType() const
Definition: rwPropertiesList.h:100
bool operator==(const DtRwVariableBindings &) const
Interface class used to define minimal interface for a property.
Definition: propertyInterface.h:48
virtual const char * decode(const char *)
Decodes the variable bindings from the specified buffer.
virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
Override to allow a variable to be assigned to a property of derived type.
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DtPropertyInterface * myPrototype
Definition: rwPropertiesList.h:187
int getSize() const
virtual void writeData(std::string &fp, int indentLevel, bool writeUnspecified, const DtFilename &path)
virtual const char * readerWriterType() const
Used to supply a string type that this reader writer type is.
virtual void putData(std::string &, int indentLevel=0)
Deriving class overrides these to get/put class specific data.
static const DtVariableBindingsList & nullVariableReference()
virtual void writeSelf(std::string &fp, int indentLevel, bool writeUnspecified, const DtFilename &path)
Writes out registry data, but includes the type strings when writing.
Defines the DtPropertyInterface class, the interface for all property classes.
virtual void bindToRwAsVariable(const DtReaderWriter *rw)
Copies values from the specified DtReaderWriter.
Definition: rwProperty.h:275
virtual int count() const
Number of properties.
Acts as a DtRwList for properties.
Definition: rwPropertiesList.h:38
Definition: rwProperties.h:25
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
Reads in items, using the factory to read the correct types.
A list of properties.
Definition: rwProperties.h:126
DtRwPropertyInt myCount
Definition: rwPropertiesList.h:188
static const char * theXmlType()
The type that is used when archiving to an XML stream.
virtual char * encode(char *) const
Encodes the variable bindings into the supplied buffer.
virtual int hlaAlignment() const
The required byte alignment of this property when encoding to HLA.
virtual bool isSimilarProperty(const DtPropertyInterface *rhs, bool strict=true) const
Returns true if the readerWriterType is the same.
virtual bool isValidProperty(const DtPropertyInterface *) const
Returns true if this is a valid property for the properties list.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)