VR-Forces 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 
58 
65  virtual bool addItem(DtPropertyInterface* item);
66 
74  virtual DtPropertyInterface* addItem();
76 
79 
81  virtual void erase(DtPropertyInterface* item);
82 
92  virtual void erase(iterator pos);
94 
97  virtual const char* readerWriterType() const;
98 
100  static const char* theXmlType();
101 
102  virtual const char* xmlType() const
103  {
104  return theXmlType();
105  }
106 
109  virtual char* encode(char*) const;
110 
113  virtual const char* decode(const char*);
114 
117  virtual void getSize(int& size) const;
118 
120  virtual int hlaAlignment() const;
121 
123  virtual bool isValidProperty(const DtPropertyInterface*) const;
124 
126  virtual int count() const;
127 
129  virtual void getSelf(DtlObjPtr args,
131  const DtVariableBindingsList& variableBindings = nullVariableReference());
132 
133  virtual void writeSelf(std::string& fp, int indentLevel = 0,
134  bool writeUnspecified = false, const DtFilename& path =
135  DtFilename::nullFilename());
136  virtual void writeData(std::string& fp, int indentLevel = 0,
137  bool writeUnspecified = false, const DtFilename& path =
138  DtFilename::nullFilename());
139 
141  virtual void setPrototype(const DtPropertyInterface*);
142 
144  virtual const DtPropertyInterface* prototype() const;
145 
147  virtual DtPropertyInterface* clonePrototype(DtReaderWriterRegistry* parent = 0);
148 
150 
152  virtual bool isSimilarProperty(const DtPropertyInterface* rhs, bool strict = true) const;
153 
154  bool operator==(const DtRwPropertiesList&) const;
155 
156  virtual bool matchPrototype(const DtReaderWriter*) const;
157 
158 protected:
159  virtual void writePrototype(const DtReaderWriter*, std::string& fp, int indentLevel, bool writeHeader = true) const;
160  virtual void bindToRwAsVariable(const DtReaderWriter* rw);
161 
162  virtual void createListEntry(DtPropertyInterface* iFace,
163  DtlObjPtr variableItem,
164  const DtReaderWriter::SearchPaths& searchPaths,
165  const DtVariableBindingsList& variableBindings);
166 
167  virtual DtPropertyInterface* createPrototype(DtlObjPtr);
168  virtual DtlObjPtr variablesStart(DtlObjPtr args) const;
169 
171  virtual const char* decode(DtPropertyInterface*, const char*);
172 
173  virtual DtlObjPtr getData(DtlObjPtr variableList,
174  const DtReaderWriter::SearchPaths& searchPaths,
175  const DtVariableBindingsList& variableBindings);
176 
177  virtual void getData(const DtEnvironmentSP env, const DtEnvValueSP root,
178  const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& varBindings);
179  virtual void putData(DtEnvironmentSP, DtEnvValueSP value) const;
180 
181  virtual void assignPrototypeToChildren();
182 
183  virtual void setPrototypeIntoTarget(const DtPropertyInterface* prototype, DtReaderWriter* target);
184 
185  virtual void postWriteItem(std::string& fp, DtReaderWriter* rw, int indentLevel);
186  virtual void preWriteItem(std::string& fp, DtReaderWriter* rw, int indentLevel);
187 
188  virtual bool matchPrototype(const DtReaderWriter* prototype, const DtReaderWriter* match) const;
189 
191  virtual void cloneAndAddProperty(const DtReaderWriter& rw);
192 
193 protected:
196 };
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:102
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:194
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:339
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:195
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 Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)