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 override |
| |
| virtual const char * | xmlType () const override |
| |
| DtRwPropertiesMap & | operator= (const DtRwPropertiesMap &) |
| |
| virtual Key | keyOfItem (const DtPropertyInterface *item) const |
| |
| virtual std::set< Key > | allKeys () const |
| |
| virtual bool | isSimilarProperty (const DtPropertyInterface *rhs, bool strict=true) const override |
| |
| virtual int | hlaAlignment () const override |
| |
| 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 () override |
| |
|
| virtual DtPropertyInterface * | findItem (const DtString &key) |
| |
| virtual DtPropertyInterface * | findItem (int key) |
| |
| virtual DtPropertyInterface * | findItem (double key) |
| |
| virtual DtPropertyInterface * | findItem (const Key &key) |
| |
| virtual const DtPropertyInterface * | findItem (const DtString &key) const |
| |
| virtual const DtPropertyInterface * | findItem (int key) const |
| |
| virtual const DtPropertyInterface * | findItem (double key) const |
| |
| virtual const DtPropertyInterface * | findItem (const Key &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 |
| |
| template<typename ValueType > |
| boost::optional< ValueType > | findItemValue (const Key &key) const |
| |
|
| virtual bool | insert (const DtString &key, DtPropertyInterface *item) |
| |
| virtual bool | insert (int key, DtPropertyInterface *item) |
| |
| virtual bool | insert (double key, DtPropertyInterface *item) |
| |
| virtual bool | insert (const Key &key, DtPropertyInterface *item) |
| |
|
| virtual DtPropertyInterface * | addItem (const DtString &key) |
| |
| virtual DtPropertyInterface * | addItem (int key) |
| |
| virtual DtPropertyInterface * | addItem (double key) |
| |
| virtual DtPropertyInterface * | addItem (const Key &key) |
| |
|
| virtual bool | erase (const DtString &key) |
| |
| virtual bool | erase (int key) |
| |
| virtual bool | erase (double key) |
| |
| virtual bool | erase (const Key &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 |
| |
| DtPropertyInterface & | operator[] (const Key &key) |
| |
| const DtPropertyInterface & | operator[] (const Key &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 override |
| |
| virtual const char * | decode (const char *) override |
| |
| virtual void | getSize (int &size) const override |
| |
| virtual bool | isValidProperty (const DtPropertyInterface *) const override |
| |
| virtual int | count () const override |
| |
| virtual void | getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=DtReaderWriter::SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) override |
| |
| virtual void | writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) override |
| |
| virtual void | writeData (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) override |
| |
| 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 () override |
| |
| 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 () override |
| |
| virtual unsigned | size () const |
| |
| virtual bool | addProperty (DtPropertyInterface *) override |
| |
| virtual bool | addPropertyAtIndex (DtPropertyInterface *, unsigned index) |
| |
| virtual void | copy (const DtPropertyInterface &rhs) override |
| |
| virtual DtPropertyInterface * | createProperty (DtlObjPtr args, DtReaderWriterRegistry *parentRegistry) |
| |
| virtual void | copyVariables (const DtRwVariableBindings &other) override |
| |
| virtual bool | isReadonly () const |
| |
| virtual const char * | propertyType () const override |
| |
| virtual DtString | stringRep (const DtString &root="") const override |
| |
| virtual bool | merge (const DtPropertyInterface &target, MergeFlags, const DtMergePath &path=DtMergePath(), const std::set< DtString > &ignore=std::set< DtString >()) override |
| |
| 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 override |
| |
| virtual void | setPropertyName (const DtString &propertyName) override |
| |
| virtual bool | isUpdateNeeded (DtTime t) const override |
| |
| virtual bool | hasReceivedUpdateSince (DtTime t) const override |
| |
| virtual DtTime | updateClockTime () const override |
| |
| virtual void | clearVariables () override |
| |
| virtual void | reset () override |
| |
| virtual void | invalidateCache () |
| |
| virtual void | invalidateCacheForProperty (const DtString &propName) |
| |
| virtual bool | setWritePrototypeHeader (bool) |
| |
| virtual bool | writePrototypeHeader () const |
| |
| virtual void | setKeepPublishingSettings (bool keep) override |
| |
| virtual bool | keepPublishingSettings () const override |
| |
| | 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 override |
| |
| virtual DtPropertyInterface * | findPropertyInterface (const DtString &propertyName) override |
| |
| virtual bool | removeProperty (const DtString &propertyName) override |
| |
| virtual bool | removeProperty (const DtPropertyInterface *property) override |
| |
| virtual const DtReaderWriter * | findPropertyRw (const DtString &propName) const |
| |
| virtual DtReaderWriter * | findPropertyRw (const DtString &propName) |
| |
| virtual DtReaderWriter * | readerWriter () override |
| |
| virtual const DtReaderWriter * | readerWriter () const override |
| |
| virtual DtPropertyInterface * | property () override |
| |
| virtual const DtPropertyInterface * | property () const override |
| |
| virtual bool | isPublished () const override |
| |
| virtual void | setIsPublished (bool isPub) override |
| |
| virtual unsigned | disRecordType () const override |
| |
| virtual void | setDisRecordType (unsigned recType) override |
| |
| virtual void | removeVariable (DtReaderWriter *) override |
| |
| virtual void | removeVariable (const DtReaderWriter *) override |
| |
| | 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 () override |
| |
| 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 override |
| |
| 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) const |
| |
| 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) |
| |
| virtual void | copyPublishingSettings (const DtPropertyInterface &prop) |
| |
| virtual void | processPublicationArgs (DtlObjPtr arg) |
| |
| virtual void | processPublicationArg (DtlObjPtr arg) |
| |
| 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) override |
| |
| virtual DtlObjPtr | variablesStart (DtlObjPtr args) const override |
| |
| virtual void | createListEntry (DtPropertyInterface *iFace, DtlObjPtr variableItem, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) override |
| |
| virtual void | getSize (const DtPropertyInterface *, int &size) const override |
| |
| virtual char * | encode (const DtPropertyInterface *, char *buf) const override |
| |
| virtual const char * | decode (DtPropertyInterface *iFace, const char *buf) override |
| |
| virtual int | requiredPadding (const char *buf, const DtPropertyInterface *field) const override |
| |
| virtual void | writePrototype (const DtReaderWriter *rw, std::string &fp, int indentLevel, bool writeHeader) const override |
| |
| virtual void | getData (const DtEnvironmentSP env, const DtEnvValueSP root, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &varBindings) override |
| |
| virtual void | putData (DtEnvironmentSP env, DtEnvValueSP value) const override |
| |
| virtual void | postWriteItem (std::string &fp, DtReaderWriter *rw, int indentLevel) override |
| |
| virtual void | preWriteItem (std::string &fp, DtReaderWriter *rw, int indentLevel) override |
| |
| virtual DtPropertyInterface * | scratchItem () const |
| |
|
| virtual const DtPropertyInterface * | findPropertyInterfaceByStringKey (const DtString &keyStr) const |
| |
| virtual DtPropertyInterface * | findPropertyInterfaceByStringKey (const DtString &keyStr) |
| |
| virtual void | bindToRwAsVariable (const DtReaderWriter *rw) override |
| |
| virtual DtlObjPtr | getData (DtlObjPtr variableList, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) override |
| |
| 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) override |
| |
| 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) override |
| |
| virtual int | hlaAlignment (const DtPropertyInterface *field) const |
| |
| virtual void | unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &varBindings) override |
| |
| 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 | writePublishInformation (std::string &fp, int indentLevel) override |
| |
| 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 override |
| |
| virtual void | setDebugEnabled (bool en) override |
| |
| 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 |
| |