VR-Forces 5.0.1 Developer's Guide
 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 
107  virtual char* encode(char*) const;
108 
111  virtual const char* decode(const char*);
112 
115  virtual void getSize(int& size) const;
116 
118  virtual int hlaAlignment() const;
119 
121  virtual bool isValidProperty(const DtPropertyInterface*) const;
122 
124  virtual int count() const;
125 
127  virtual void getSelf(DtlObjPtr args,
129  const DtVariableBindingsList& variableBindings = nullVariableReference());
130 
131  virtual void writeSelf(std::string& fp, int indentLevel = 0,
132  bool writeUnspecified = false, const DtFilename& path =
133  DtFilename::nullFilename());
134  virtual void writeData(std::string& fp, int indentLevel = 0,
135  bool writeUnspecified = false, const DtFilename& path =
136  DtFilename::nullFilename());
137 
139  virtual void setPrototype(const DtPropertyInterface*);
140 
142  virtual const DtPropertyInterface* prototype() const;
143 
145  virtual DtPropertyInterface* clonePrototype(DtReaderWriterRegistry* parent = 0);
146 
148 
150  virtual bool isSimilarProperty(const DtPropertyInterface* rhs, bool strict = true) const;
151 
152  bool operator==(const DtRwPropertiesList&) const;
153 
154  virtual bool matchPrototype(const DtReaderWriter*) const;
155 
156 protected:
157  virtual void writePrototype(const DtReaderWriter*, std::string& fp, int indentLevel, bool writeHeader = true) const;
158  virtual void bindToRwAsVariable(const DtReaderWriter* rw);
159 
160  virtual void createListEntry(DtPropertyInterface* iFace,
161  DtlObjPtr variableItem,
162  const DtReaderWriter::SearchPaths& searchPaths,
163  const DtVariableBindingsList& variableBindings);
164 
165  virtual DtPropertyInterface* createPrototype(DtlObjPtr);
166  virtual DtlObjPtr variablesStart(DtlObjPtr args) const;
167 
169  virtual const char* decode(DtPropertyInterface*, const char*);
170 
171  virtual DtlObjPtr getData(DtlObjPtr variableList,
172  const DtReaderWriter::SearchPaths& searchPaths,
173  const DtVariableBindingsList& variableBindings);
174 
175  virtual void getData(const DtEnvironmentSP env, const DtEnvValueSP root,
176  const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& varBindings);
177  virtual void putData(DtEnvironmentSP, DtEnvValueSP value) const;
178 
179  virtual void assignPrototypeToChildren();
180 
181  virtual void setPrototypeIntoTarget(const DtPropertyInterface* prototype, DtReaderWriter* target);
182 
183  virtual void postWriteItem(std::string& fp, DtReaderWriter* rw, int indentLevel);
184  virtual void preWriteItem(std::string& fp, DtReaderWriter* rw, int indentLevel);
185 
186  virtual bool matchPrototype(const DtReaderWriter* prototype, const DtReaderWriter* match) const;
187 
189  virtual void cloneAndAddProperty(const DtReaderWriter& rw);
190 
191 protected:
194 };
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. The DtPropertyInterface class provid...
Definition: propertyInterface.h:48
virtual const char * decode(const char *)
Decodes the variable bindings from the specified buffer. Buffer should already be properly aligned to...
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:192
int getSize() const
Returns the network size of this item in bytes. This does not include any upfront padding for alignme...
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. This can be used in place of dynamic-ca...
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. rw must point to the same subclassed type of DtReade...
Definition: rwProperty.h:288
virtual int count() const
Number of properties.
Acts as a DtRwList for properties. Only real difference between this class and a DtRwProperties class...
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. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:126
DtRwPropertyInt myCount
Definition: rwPropertiesList.h:193
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. Buffer must already be properly aligned to hl...
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. Subclasses can do extra checking. If strict is true, some property types will do extra checking and fail if the types do not exactly match. If false, these types will do a basic check, which can be useful when the the types are similar enough to perform a merge.
virtual bool isValidProperty(const DtPropertyInterface *) const
Returns true if this is a valid property for the properties list.

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)