Acts as a map for properties. A map is a definition that has a key and a prototype, with values being the key and prototype pair. The key can only be a string (DtRwStringType), int (DtRwIntType, DtRwInt8Type, DtRwInt16Type, DtRwInt32Type), or real (DtRwRealType, DtRwReal32Type, DtRwReal64Type).
The map is defined in reader/writer as:
(DtRwStruct CombatRange
)
("Small" (100.0 20)) ("Medium" (200.0 40)) ("Large" (300.0 60))
)
For a single variable (not a structure) the map would look like:
("Row 1" (1.0 2.0 3.0 4.0))
)
As a subclass of DtRwProperties, DtRwPropertiesMap supports an STL-like iterator for iterating over its items. It also has convenience functions for adding, removing, and accessing items within the map by key. These include [] operators. Please also see DtRwPropertiesList for further convenience functions. The key type for a DtRwPropertiesMap must be a recognized simple property type (generally some type of integer, real, or string).
|
| virtual const char * | readerWriterType () const |
| |
| virtual const char * | xmlType () const |
| |
| DtRwPropertiesMap & | operator= (const DtRwPropertiesMap &) |
| |
| virtual bool | isSimilarProperty (const DtPropertyInterface *rhs, bool strict=true) const |
| |
| virtual int | hlaAlignment () const |
| |
| bool | operator== (const DtRwPropertiesMap &) const |
| |
|
| | DtRwPropertiesMap (const DtString &name, DtReaderWriterRegistry *parentRegistry=0) |
| |
| | DtRwPropertiesMap (const DtString &name, const DtString &keyType, const DtPropertyInterface *prototype, DtReaderWriterRegistry *parentRegistry=0) |
| |
| | DtRwPropertiesMap (const DtString &name, const DtRwPropertiesMap &orig, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtRwPropertiesMap () |
| |
|
Finds the item with the specified key. Will fail if the type of the key does not match the type of myKeyType. Returns a DtPropertyInterface pointer to this item. If the item cannot be found returns a null pointer.
propertiesMap.findItem("Some Resource"));
|
| virtual DtPropertyInterface * | findItem (const DtString &key) |
| |
| virtual DtPropertyInterface * | findItem (int key) |
| |
| virtual DtPropertyInterface * | findItem (double key) |
| |
| virtual const DtPropertyInterface * | findItem (const DtString &key) const |
| |
| virtual const DtPropertyInterface * | findItem (int key) const |
| |
| virtual const DtPropertyInterface * | findItem (double key) const |
| |
| template<typename ValueType > |
| boost::optional< ValueType > | findItemValue (const DtString &key) const |
| |
| template<typename ValueType > |
| boost::optional< ValueType > | findItemValue (int key) const |
| |
| template<typename ValueType > |
| boost::optional< ValueType > | findItemValue (double key) const |
| |
|
Insertion functions for adding a new item to the map. Will fail if the type of the key does not match the type of myKeyType or if the type of the item does not match the type of myPrototype. If an element with that key already exists, it will not be replaced. If the item is added, the map takes ownership of it. Returns a bool indicating whether the insertion took place.
bool wasAdded = propertiesMap.insert("Num Soldiers", newItem);
|
| virtual bool | insert (const DtString &key, DtPropertyInterface *item) |
| |
| virtual bool | insert (int key, DtPropertyInterface *item) |
| |
| virtual bool | insert (double key, DtPropertyInterface *item) |
| |
|
Adds a new item to the map of the same type as myPrototype that has the specified key. Returns this item so that it may be set by the caller. If the key is of the wrong type then nothing is added and the returned pointer will be null. If an item with this key already exists, then nothing is added and the returned pointer will be null.
|
| virtual DtPropertyInterface * | addItem (const DtString &key) |
| |
| virtual DtPropertyInterface * | addItem (int key) |
| |
| virtual DtPropertyInterface * | addItem (double key) |
| |
|
Erases the item with the specified key. Returns true if the item was found and erased. May also erase using an iterator to the item, as implemented in DtRwPropertiesList.
propertiesMap.erase("Num Soldiers");
|
| virtual bool | erase (const DtString &key) |
| |
| virtual bool | erase (int key) |
| |
| virtual bool | erase (double key) |
| |
|
These operator[] overloads allow you to access a map item by common key types. If the item does not exist, a new one will be added of the same type as the prototype. These allow you to index by common basic key types without necessarily converting the key to a DtPropertyInterface to call findItem. If the key is of the wrong type an uninitialized copy of the prototype will be returned that is not part of the map, so care must be taken.
boost::optional<int> val = propertiesMap["Num Soldiers"].propertyValue<int>();
if (val)
{
int newVal = *val + 1;
propertiesMap["Num Soldiers"].setPropertyValue<int>(4);
}
|
| DtPropertyInterface & | operator[] (const DtString &key) |
| |
| const DtPropertyInterface & | operator[] (const DtString &key) const |
| |
| DtPropertyInterface & | operator[] (double key) |
| |
| const DtPropertyInterface & | operator[] (double key) const |
| |
| DtPropertyInterface & | operator[] (int key) |
| |
| const DtPropertyInterface & | operator[] (int key) const |
| |
|
| virtual void | setKeyType (const DtString &) |
| |
| virtual const DtReaderWriter * | keyType () const |
| |
|
| virtual bool | keyIsInt () const |
| |
| virtual bool | keyIsReal () const |
| |
| virtual bool | keyIsString () const |
| |
| virtual char * | encode (char *) const |
| |
| virtual const char * | decode (const char *) |
| |
| virtual void | getSize (int &size) const |
| |
| virtual bool | isValidProperty (const DtPropertyInterface *) const |
| |
| virtual int | count () const |
| |
| virtual void | getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=DtReaderWriter::SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| |
| virtual void | writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| |
| virtual void | writeData (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| |
| virtual void | setPrototype (const DtPropertyInterface *) |
| |
| virtual const DtPropertyInterface * | prototype () const |
| |
| virtual DtPropertyInterface * | clonePrototype (DtReaderWriterRegistry *parent=0) |
| |
| DtRwPropertiesList & | operator= (const DtRwPropertiesList &) |
| |
| bool | operator== (const DtRwPropertiesList &) const |
| |
| virtual bool | matchPrototype (const DtReaderWriter *) const |
| |
| | DtRwPropertiesList (const DtString &name, DtReaderWriterRegistry *parentRegistry=0) |
| |
| | DtRwPropertiesList (const DtString &name, const DtPropertyInterface *prototype, DtReaderWriterRegistry *parentRegistry=0) |
| |
| | DtRwPropertiesList (const DtString &name, const DtRwPropertiesList &orig, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtRwPropertiesList () |
| |
| virtual bool | addItem (DtPropertyInterface *item) |
| |
| virtual DtPropertyInterface * | addItem () |
| |
| virtual void | erase (DtPropertyInterface *item) |
| |
| virtual void | erase (iterator pos) |
| |
| DtRwProperties & | operator= (const DtRwProperties &orig) |
| |
| virtual | ~DtRwProperties () |
| |
| virtual unsigned | size () const |
| |
| virtual bool | addProperty (DtPropertyInterface *) |
| |
| virtual bool | addPropertyAtIndex (DtPropertyInterface *, unsigned index) |
| |
| virtual void | copy (const DtPropertyInterface &rhs) |
| |
| virtual DtPropertyInterface * | createProperty (DtlObjPtr args, DtReaderWriterRegistry *parentRegistry) |
| |
| virtual void | copyVariables (const DtRwVariableBindings &other) |
| |
| virtual bool | isReadonly () const |
| |
| virtual const char * | propertyType () const |
| |
| virtual DtString | stringRep (const DtString &root="") const |
| |
| virtual bool | merge (const DtPropertyInterface &target, MergeFlags, const DtMergePath &path=DtMergePath(), const std::set< DtString > &ignore=std::set< DtString >()) |
| |
| virtual DtRwProperties | createFromPercentages (const DtRwProperties &percentages, const DtRwProperties &baseValues, const DtString &base="Base-") |
| |
| virtual bool | findRootAndVariable (const DtString &varName, DtReaderWriter *&root, DtReaderWriter *&variable) const |
| |
| virtual DtSymbolString | propertyName () const |
| |
| virtual void | setPropertyName (const DtString &propertyName) |
| |
| virtual bool | wasUpdatedSince (DtTime t) const |
| |
| virtual void | clearVariables () |
| |
| virtual void | reset () |
| |
| virtual void | invalidateCache () |
| |
| virtual void | invalidateCacheForProperty (const DtString &propName) |
| |
| virtual bool | setWritePrototypeHeader (bool) |
| |
| virtual bool | writePrototypeHeader () const |
| |
| | DtRwProperties (const DtString &name, DtReaderWriterRegistry *parentRegistry=0) |
| |
| | DtRwProperties (const DtString &name, const DtRwProperties &orig, DtReaderWriterRegistry *parentRegistry=0) |
| |
| | DtRwProperties (const DtRwProperties &orig, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual const_iterator | begin () const |
| |
| virtual iterator | begin () |
| |
| virtual const_iterator | end () const |
| |
| virtual iterator | end () |
| |
| virtual const DtPropertyInterface * | findPropertyInterface (const DtString &propertyName) const |
| |
| virtual DtPropertyInterface * | findPropertyInterface (const DtString &propertyName) |
| |
| virtual bool | removeProperty (const DtString &propertyName) |
| |
| virtual bool | removeProperty (const DtPropertyInterface *property) |
| |
| virtual const DtReaderWriter * | findPropertyRw (const DtString &propName) const |
| |
| virtual DtReaderWriter * | findPropertyRw (const DtString &propName) |
| |
| virtual DtReaderWriter * | readerWriter () |
| |
| virtual const DtReaderWriter * | readerWriter () const |
| |
| virtual DtPropertyInterface * | property () |
| |
| virtual const DtPropertyInterface * | property () const |
| |
| virtual bool | isPublished () const |
| |
| virtual void | setIsPublished (bool isPub) |
| |
| virtual unsigned | disRecordType () const |
| |
| virtual void | setDisRecordType (unsigned recType) |
| |
| virtual void | removeVariable (DtReaderWriter *) |
| |
| virtual void | removeVariable (const DtReaderWriter *) |
| |
| | DtRwVariableBindings (const DtString &name, DtReaderWriterRegistry *parentRegistry=0) |
| |
| | DtRwVariableBindings (const DtString &name, const DtRwVariableBindings &orig, DtReaderWriterRegistry *parentRegistry=0, bool copyVariables=true) |
| |
| | DtRwVariableBindings (const DtRwVariableBindings &orig, DtReaderWriterRegistry *parentRegistry=0, bool copyVariables=true) |
| |
| DtRwVariableBindings & | operator= (const DtRwVariableBindings &orig) |
| |
| virtual | ~DtRwVariableBindings () |
| |
| template<typename RW_Type > |
| const RW_Type * | findAndCastVariableBinding (const DtString &variableName) const |
| |
| virtual DtReaderWriter * | addVariableBinding (const DtSymbolString &name, const char *type) |
| |
| virtual void | addVariable (DtReaderWriter *) |
| |
| virtual int | getSize () const |
| |
| bool | operator== (const DtRwVariableBindings &) const |
| |
| bool | operator!= (const DtRwVariableBindings &) const |
| |
| virtual DtString | prettyPrint () const |
| |
| virtual void | setVariableSubstitutions (const std::map< DtString, DtString > &) |
| |
virtual const std::map
< DtString, DtString > & | variableSubstitutions () const |
| |
| virtual void | merge (const DtRwVariableBindings &) |
| |
| virtual const DtReaderWriter * | findVariableBinding (const DtString &rwTypeString, const DtString &variableName, const std::map< DtString, DtString > &variableSubstitutions=std::map< DtString, DtString >()) const |
| |
| virtual DtReaderWriter * | findVariableBinding (const DtString &rwTypeString, const DtString &variableName, const std::map< DtString, DtString > &variableSubstitutions=std::map< DtString, DtString >()) |
| |
| virtual const DtReaderWriter * | findVariableBinding (const DtString &variableName, const std::map< DtString, DtString > &variableSubstitutions=std::map< DtString, DtString >()) const |
| |
| virtual DtReaderWriter * | findVariableBinding (const DtString &variableName, const std::map< DtString, DtString > &variableSubstitutions=std::map< DtString, DtString >()) |
| |
| | DtReaderWriter () |
| |
| | DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) |
| |
| | DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) |
| |
| | DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| | DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| | DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| const DtReaderWriter & | operator= (const DtReaderWriter &orig) |
| |
| bool | operator== (const DtReaderWriter &) const |
| |
| bool | operator!= (const DtReaderWriter &rhs) |
| |
| virtual | ~DtReaderWriter () |
| |
| virtual void | putSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| |
| virtual void | postPutSelf () |
| |
| virtual void | prePutSelf () |
| |
| virtual void | postGetSelf () |
| |
| virtual void | preGetSelf () |
| |
| virtual DtSymbolString | name () const |
| |
| virtual void | addAlias (const DtSymbolString &alias) |
| |
| virtual void | addAlias (const DtString &alias) |
| |
| virtual bool | hasAlias (const DtSymbolString &alias) |
| |
| virtual const aliasContainer & | aliases () const |
| |
| virtual void | setReadonly (bool flag) |
| |
| bool | isReadonly () const |
| |
| virtual int | alignment () const |
| |
| virtual bool | variableIsBound () const |
| |
| virtual void | unbindVariable () |
| |
| virtual void | setName (const DtString &) |
| |
| std::string | debugText () const |
| |
| virtual void | bindVariables (DtVariableBindingsList variableBindings) |
| |
virtual std::list
< DtVariableNameType > | unboundVariables () const |
| |
| bool | invalid () const |
| |
| virtual bool | hasChild (const DtReaderWriter *p) const |
| |
| virtual bool | hasVariableReference () const |
| |
| virtual void | bindLocalVariables (const DtVariableBindingsList &variableBindings) |
| |
| virtual void | recordUpdateTime () const |
| |
| virtual bool | changedSinceLastChecked () |
| |
| virtual bool | peekChangedSinceLastChecked () const |
| |
| virtual void | setValueSpecified (bool specified, bool recurse=false) |
| |
| virtual bool | valueSpecified () const |
| |
| virtual bool | isVariableReference () const |
| |
| virtual void | setIsVariableReference (bool value) |
| |
| virtual void | clearAllVariableReferenceFlags () |
| |
| virtual DtSymbolString | variableName () const |
| |
| virtual void | setVariableName (const DtSymbolString variableName) |
| |
| virtual const DtReaderWriter * | defaultRWValue () const |
| |
| virtual DtReaderWriter * | defaultRWValue () |
| |
| virtual void | setDefaultRWValue (DtReaderWriter *) |
| |
| virtual bool | checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| |
| const DtReaderWriterRegistry & | registry () const |
| |
| DtReaderWriterRegistry & | registry () |
| |
| virtual DtString | toXml () const |
| |
| virtual DtRwVariableBindings * | generateVariableBindings () const |
| |
| virtual bool | toXml (const DtFilename &) const |
| |
| virtual bool | fromXml (const DtString &) |
| |
| virtual bool | fromXmlFile (const DtFilename &) |
| |
| virtual void | putSelf (DtEnvironmentSP, DtEnvValueSP parent) const |
| |
| virtual void | putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const |
| |
| virtual void | getSelf (const DtEnvironmentSP, const DtEnvValueSP root, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList()) |
| |
| virtual void | getVariableReference (DtEnvironmentSP, DtEnvValueSP value) |
| |
| virtual | ~DtPropertyInterface () |
| |
| virtual bool | isPublishedArg (DtlObjPtr arg, unsigned &disVarRecType) const |
| |
| template<typename ValueType > |
| boost::optional< ValueType > | propertyValue () const |
| |
| template<typename ValueType > |
| bool | setPropertyValue (ValueType val) |
| |
| template<typename SpecificPropType > |
| const SpecificPropType * | findProperty (const DtString &propertyName) const |
| |
| template<typename SpecificPropType > |
| SpecificPropType * | findProperty (const DtString &propertyName) |
| |
| template<typename ValueType > |
| boost::optional< ValueType > | findPropertyValue (const DtString &propertyName) const |
| |
| template<typename ValueType > |
| bool | findAndSetPropertyValue (const DtString &propertyName, ValueType val) |
| |
| template<typename SpecificPropType > |
| SpecificPropType * | addNewProperty (const DtString &propertyName) |
| |
| int | getSize () const |
| |
|
| virtual bool | convertKeyToString (int key, DtString &str) const |
| |
| virtual bool | convertKeyToString (double key, DtString &str) const |
| |
| virtual bool | convertStringToKey (const DtString &str, int &key) const |
| |
| virtual bool | convertStringToKey (const DtString &str, double &key) const |
| |
| virtual DtPropertyInterface * | createPrototype (DtlObjPtr args) |
| |
| virtual DtlObjPtr | variablesStart (DtlObjPtr args) const |
| |
| virtual void | createListEntry (DtPropertyInterface *iFace, DtlObjPtr variableItem, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) |
| |
| virtual void | getSize (const DtPropertyInterface *, int &size) const |
| |
| virtual char * | encode (const DtPropertyInterface *, char *buf) const |
| |
| virtual const char * | decode (DtPropertyInterface *iFace, const char *buf) |
| |
| virtual int | requiredPadding (const char *buf, const DtPropertyInterface *field) const |
| |
| virtual void | getData (const DtEnvironmentSP env, const DtEnvValueSP root, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &varBindings) |
| |
| virtual void | putData (DtEnvironmentSP env, DtEnvValueSP value) const |
| |
| virtual void | postWriteItem (std::string &fp, DtReaderWriter *rw, int indentLevel) |
| |
| virtual void | preWriteItem (std::string &fp, DtReaderWriter *rw, int indentLevel) |
| |
| virtual DtPropertyInterface * | scratchItem () const |
| |
|
| virtual const DtPropertyInterface * | findPropertyInterfaceByStringKey (const DtString &keyStr) const |
| |
| virtual DtPropertyInterface * | findPropertyInterfaceByStringKey (const DtString &keyStr) |
| |
| virtual void | writePrototype (const DtReaderWriter *, std::string &fp, int indentLevel, bool writeHeader=true) const |
| |
| virtual void | bindToRwAsVariable (const DtReaderWriter *rw) |
| |
| virtual DtlObjPtr | getData (DtlObjPtr variableList, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) |
| |
| virtual void | assignPrototypeToChildren () |
| |
| virtual void | setPrototypeIntoTarget (const DtPropertyInterface *prototype, DtReaderWriter *target) |
| |
| virtual bool | matchPrototype (const DtReaderWriter *prototype, const DtReaderWriter *match) const |
| |
| virtual void | cloneAndAddProperty (const DtReaderWriter &rw) |
| |
| virtual void | filterIgnoredProperties (DtReaderWriter *rw, const std::set< DtString > &ignore) |
| |
| virtual void | getInterface (DtPropertyInterface *pFace, DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| |
| virtual void | putData (std::string &, int indentLevel=0) |
| |
| virtual int | hlaAlignment (const DtPropertyInterface *field) const |
| |
| virtual void | unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &varBindings) |
| |
| virtual bool | traverseAndModifyPercentage (DtRwProperties &results, const DtRwProperties &baseValues, const DtReaderWriter *percentage, const DtString &base) const |
| |
| virtual void | writePrototypeHeader (std::string &fp, const DtReaderWriter *rw, int indentLevel) const |
| |
| virtual void | writePropertyData (DtReaderWriter *rw, std::string &fp, int indentLevel, bool writeUnspecified, const DtFilename &path) |
| |
| virtual void | getSortedProperties (const DtRwVariableBindings &varBindings, std::vector< const DtReaderWriter * > &propertyList) const |
| |
| virtual void | getSortedProperties (DtRwVariableBindings &varBindings, std::vector< DtReaderWriter * > &propertyList) |
| |
| virtual bool | isDebugEnabled () const |
| |
| virtual void | setDebugEnabled (bool en) |
| |
| virtual const DtReaderWriter * | internalFindVariableBinding (const DtString &rwTypeString, const DtString &variableName, const std::map< DtString, DtString > &variableSubstitutions=std::map< DtString, DtString >()) const |
| |
| virtual bool | keywordMatches (const DtSymbolString &lhs, const DtString &rhs, const std::map< DtString, DtString > &variableSubstitutions) const |
| |