![]() |
VR-Forces 5.0.2 Developer's Guide
|
class DtRwIntrusiveList:
Instances of DtRwIntrusiveList are readable-writable versions of the VR-Link DtIntrusiveList class. Instead of expecting its objects to be derived from DtListedObj, this class expects them to be derived from DtRwListedObj.
In order to use this class, you will have to derive a more specific class from it that implements the special getData function to create the actual list items.
The save format for this class is something like: (list-name (list-elem-name ...element putSelf data...) (list-elem-name ...element putSelf data...) ... )

Public Member Functions | |
| DtRwIntrusiveList () | |
| DtRwIntrusiveList (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtRwIntrusiveList (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtRwIntrusiveList (const DtString &name, const DtRwIntrusiveList &orig, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtRwIntrusiveList (const DtSymbolString &name, const DtRwIntrusiveList &orig, DtReaderWriterRegistry *parentRegistry=NULL) | |
| virtual | ~DtRwIntrusiveList () |
| DtRwIntrusiveList & | operator= (const DtRwIntrusiveList &orig) |
| DtRwListedObj * | firstObj () const |
| DtRwListedObj * | lastObj () const |
| DtListItem * | first () const |
| DtListItem * | last () const |
| unsigned | count () const |
| DtListItem * | add (DtRwListedObj *data) |
| DtListItem * | addToStart (DtRwListedObj *data) |
| DtListItem * | addToEnd (DtRwListedObj *data) |
| DtListItem * | addBefore (DtRwListedObj *data, DtRwListedObj *before) |
| DtListItem * | addAfter (DtRwListedObj *data, DtRwListedObj *after) |
| DtRwListedObj * | remove (DtRwListedObj *data) |
| virtual DtRwListedObj * | remove (DtListItem *item) |
| void | removeAndDelete (DtRwListedObj *data) |
| virtual void | removeAndDelete (DtListItem *item) |
| virtual void | removeAll () |
| virtual void | removeAllAndDelete () |
| DtListItem * | itemLookup (DtRwListedObj *data) const |
| virtual void | getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) |
| virtual DtlObjPtr | getData (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)=0 |
| virtual DtlObjPtr | getLocalData (DtlObjPtr args) |
| virtual const char * | readerWriterType () const |
Public Member Functions inherited from DtReaderWriter | |
| 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 void | writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| 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 void | reset () |
| virtual int | alignment () const |
| virtual bool | variableIsBound () const |
| virtual void | unbindVariable () |
| virtual void | setName (const DtString &) |
| virtual const char * | xmlType () const |
| virtual DtString | prettyPrint () const |
| 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 | wasUpdatedSince (DtTime t) const |
| virtual bool | changedSinceLastChecked () |
| virtual bool | peekChangedSinceLastChecked () const |
| virtual void | putData (std::string &fp, int indentLevel=0) |
| 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 DtPropertyInterface * | property () |
| virtual const DtPropertyInterface * | property () const |
| 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 | putData (DtEnvironmentSP, DtEnvValueSP value) 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 | getData (const DtEnvironmentSP, const DtEnvValueSP, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList()) |
| virtual void | unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings) |
| virtual void | getVariableReference (DtEnvironmentSP, DtEnvValueSP value) |
Protected Member Functions | |
| DtRwIntrusiveList (const DtRwIntrusiveList &orig) | |
| virtual DtListItem * | addToList (DtRwListedObj *data, DtRwListedObj *after) |
Protected Member Functions inherited from DtReaderWriter | |
| virtual void | bindToRwAsVariable (const DtReaderWriter *rw) |
Protected Attributes | |
| DtList | myList |
Protected Attributes inherited from DtReaderWriter | |
| const DtSymbolString | myName |
| DtReaderWriterRegistry | myRegistry |
| DtReaderWriterRegistry * | myParentRegistry |
| bool | myValueSpecified |
| bool | myReadOnlyFlag |
| bool | myIsVariableReference |
| DtSymbolString | myVariableName |
| bool | myVariableIsBound |
| DtReaderWriter * | myDefaultValue |
| aliasContainer | myAliases |
| bool | myInvalid |
| bool | myChangedFlag |
| DtRwIntrusiveList::DtRwIntrusiveList | ( | ) |
default constructor
| DtRwIntrusiveList::DtRwIntrusiveList | ( | const DtString & | name, |
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) |
real constructor
| DtRwIntrusiveList::DtRwIntrusiveList | ( | const DtSymbolString & | name, |
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) |
| DtRwIntrusiveList::DtRwIntrusiveList | ( | const DtString & | name, |
| const DtRwIntrusiveList & | orig, | ||
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) |
Invokes DtReaderWriter copy constructor. Elements are not copied.
| DtRwIntrusiveList::DtRwIntrusiveList | ( | const DtSymbolString & | name, |
| const DtRwIntrusiveList & | orig, | ||
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) |
|
virtual |
destructor Note: for consistency with other list classes, this destructor will NOT delete the data objects contained by the list. If you wish to have the data deleted as well, call removeAllAndDelete() before deleting the entire list.
|
protected |
C++ copy constructor Not implemented, do not call.
| DtRwIntrusiveList& DtRwIntrusiveList::operator= | ( | const DtRwIntrusiveList & | orig | ) |
Calls down to DtReaderWriter::operator=(). List elements are not copied.
|
inline |
Return first and last item on the list.
Inline Functions.
References myList.
Referenced by addToStart(), and DtSimBlock::firstStmt().
|
inline |
References myList.
Referenced by addToEnd(), and DtSimBlock::lastStmt().
|
inline |
Return first and last item on the list. DtListItem is an envelope for your data. The data can be obtained using DtListItem::data().
References myList.
Referenced by addToStart().
|
inline |
References myList.
Referenced by addToEnd().
|
inline |
Returns the number of elements in the list.
References myList.
|
inline |
Add element to the end of the list. Returns the DtListItem envelope object that contains your new element.
References addToEnd().
|
inline |
Add element to the beginning of the list. Returns the DtListItem envelope object that contains your new element.
References addBefore(), first(), firstObj(), and myList.
|
inline |
Add element to the end of the list. Returns the DtListItem envelope object that contains your new element.
References addToList(), last(), lastObj(), and myList.
Referenced by add().
|
inline |
Add element to the list just before the indicated object. Returns the DtListItem envelope object that contains your new element.
References addToList(), and DtRwListedObj::prev().
Referenced by addToStart().
|
inline |
Add element to the list just after the indicated object. Returns the DtListItem envelope object that contains your new element.
References addToList().
|
inline |
Remove an element from the list. Note: remove does not free memory of data associated with the item. It only frees the item. The data is returned to the caller for deletion if required.
References DtRwListedObj::myItem.
|
virtual |
Remove an element from the list. Item is the envelope containing the data element you would like to remove. Note: remove does not free memory of data associated with the item. It only frees the item. The data is returned to the caller for deletion if required.
|
inline |
Remove and delete an element from the list.
References DtRwListedObj::myItem.
|
virtual |
Remove and delete an element from the list. Item is the envelope containing the data element you would like to remove.
|
virtual |
Calls remove for all elements in the list. It does NOT delete the data in the list. Merely removes the data from the list.
|
virtual |
Same as removeAll, except that this DOES delete the data in the list.
|
inline |
Returns the DtListItem envelope object containing the indicated data element. This function should never be necessary, it is included solely for completeness and consistency with DtIntrusiveList.
References myList.
|
virtual |
Reads the contents of the list, using the list-specific getData function below.
Reimplemented from DtReaderWriter.
|
pure virtual |
This special version of getData needs to create the necessary list element object (one that's derived from DtRwListedObj), tell the element to getSelf, and then add the element to the DtRwIntrusiveList. The return value is ignored.
Reimplemented from DtReaderWriter.
Implemented in DtSimBlock.
|
virtual |
Since getData is usually used for local data, and we're overloading it here to get the list data, use this if you want any data before your lists.
|
virtual |
Used to supply a string type that this reader writer type is. This can be used in place of dynamic-casting. Also used by the opd editor to determine which type of control to create.
Reimplemented from DtReaderWriter.
|
protectedvirtual |
Add element to the list just after the indicated item. Returns the DtListItem envelope object that contains your new element.
Reimplemented in DtSimBlock.
Referenced by addAfter(), addBefore(), and addToEnd().
|
protected |
The actual DtList used to store the items.
Referenced by addToEnd(), addToStart(), count(), first(), firstObj(), itemLookup(), last(), and lastObj().