VR-Forces 4.0.4 Class Documentation
Public Member Functions | Protected Member Functions | Protected Attributes
DtRwIntrusiveList Class Reference

class DtRwIntrusiveList: More...

Inheritance diagram for DtRwIntrusiveList:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 DtRwIntrusiveList ()
 default constructor
 DtRwIntrusiveList (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL)
 real constructor
 DtRwIntrusiveList (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL)
 DtRwIntrusiveList (const DtString &name, const DtRwIntrusiveList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 Invokes DtReaderWriter copy constructor. Elements are not copied.
 DtRwIntrusiveList (const DtSymbolString &name, const DtRwIntrusiveList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
virtual ~DtRwIntrusiveList ()
 destructor Note: for consistency with other list classes, this destructor will NOT delete the data objects contained by the list.
DtRwIntrusiveListoperator= (const DtRwIntrusiveList &orig)
 Calls down to DtReaderWriter::operator=(). List elements are not copied.
DtRwListedObjfirstObj () const
 Return first and last item on the list.
DtRwListedObjlastObj () const
DtListItem * first () const
 Return first and last item on the list.
DtListItem * last () const
unsigned count () const
 Returns the number of elements in the list.
DtListItem * add (DtRwListedObj *data)
 Add element to the end of the list.
DtListItem * addToStart (DtRwListedObj *data)
 Add element to the beginning of the list.
DtListItem * addToEnd (DtRwListedObj *data)
 Add element to the end of the list.
DtListItem * addBefore (DtRwListedObj *data, DtRwListedObj *before)
 Add element to the list just before the indicated object.
DtListItem * addAfter (DtRwListedObj *data, DtRwListedObj *after)
 Add element to the list just after the indicated object.
DtRwListedObjremove (DtRwListedObj *data)
 Remove an element from the list.
virtual DtRwListedObjremove (DtListItem *item)
 Remove an element from the list.
void removeAndDelete (DtRwListedObj *data)
 Remove and delete an element from the list.
virtual void removeAndDelete (DtListItem *item)
 Remove and delete an element from the list.
virtual void removeAll ()
 Calls remove for all elements in the list.
virtual void removeAllAndDelete ()
 Same as removeAll, except that this DOES delete the data in the list.
DtListItem * itemLookup (DtRwListedObj *data) const
 Returns the DtListItem envelope object containing the indicated data element.
virtual void getSelf (DtlObjPtr args, const DtFilename &searchPath, const DtVariableBindingsList &variableBindings)
 Reads the contents of the list, using the list-specific getData function below.
virtual DtlObjPtr getData (DtlObjPtr args, const DtFilename &searchPath, const DtVariableBindingsList &variableBindings)=0
 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.
virtual DtlObjPtr getLocalData (DtlObjPtr args)
 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 const char * readerWriterType () const
 Used to supply a string type that this reader writer type is.

Protected Member Functions

 DtRwIntrusiveList (const DtRwIntrusiveList &orig)
 C++ copy constructor Not implemented, do not call.
virtual DtListItem * addToList (DtRwListedObj *data, DtRwListedObj *after)
 Add element to the list just after the indicated item.

Protected Attributes

DtList myList
 The actual DtList used to store the items.

Detailed Description

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...) ... )


Constructor & Destructor Documentation

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 
)

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.

C++ copy constructor Not implemented, do not call.


Member Function Documentation

DtRwIntrusiveList& DtRwIntrusiveList::operator= ( const DtRwIntrusiveList orig)

Calls down to DtReaderWriter::operator=(). List elements are not copied.

Return first and last item on the list.

Inline Functions.

References myList.

Referenced by addToStart(), and DtSimBlock::firstStmt().

References myList.

Referenced by addToEnd(), and DtSimBlock::lastStmt().

DtListItem * DtRwIntrusiveList::first ( ) const [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().

DtListItem * DtRwIntrusiveList::last ( ) const [inline]

References myList.

Referenced by addToEnd().

unsigned DtRwIntrusiveList::count ( ) const [inline]

Returns the number of elements in the list.

References myList.

DtListItem * DtRwIntrusiveList::add ( DtRwListedObj data) [inline]

Add element to the end of the list.

Returns the DtListItem envelope object that contains your new element.

References addToEnd().

DtListItem * DtRwIntrusiveList::addToStart ( DtRwListedObj data) [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.

DtListItem * DtRwIntrusiveList::addToEnd ( DtRwListedObj data) [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().

DtListItem * DtRwIntrusiveList::addBefore ( DtRwListedObj data,
DtRwListedObj before 
) [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().

DtListItem * DtRwIntrusiveList::addAfter ( DtRwListedObj data,
DtRwListedObj after 
) [inline]

Add element to the list just after the indicated object.

Returns the DtListItem envelope object that contains your new element.

References addToList().

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 DtRwListedObj* DtRwIntrusiveList::remove ( DtListItem *  item) [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.

Remove and delete an element from the list.

References DtRwListedObj::myItem.

virtual void DtRwIntrusiveList::removeAndDelete ( DtListItem *  item) [virtual]

Remove and delete an element from the list.

Item is the envelope containing the data element you would like to remove.

virtual void DtRwIntrusiveList::removeAll ( ) [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 void DtRwIntrusiveList::removeAllAndDelete ( ) [virtual]

Same as removeAll, except that this DOES delete the data in the list.

DtListItem * DtRwIntrusiveList::itemLookup ( DtRwListedObj data) const [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 void DtRwIntrusiveList::getSelf ( DtlObjPtr  args,
const DtFilename &  searchPath,
const DtVariableBindingsList variableBindings 
) [virtual]

Reads the contents of the list, using the list-specific getData function below.

virtual DtlObjPtr DtRwIntrusiveList::getData ( DtlObjPtr  args,
const DtFilename &  searchPath,
const DtVariableBindingsList variableBindings 
) [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.

Implemented in DtSimBlock.

virtual DtlObjPtr DtRwIntrusiveList::getLocalData ( DtlObjPtr  args) [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 const char* DtRwIntrusiveList::readerWriterType ( ) const [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.

virtual DtListItem* DtRwIntrusiveList::addToList ( DtRwListedObj data,
DtRwListedObj after 
) [protected, virtual]

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().


Member Data Documentation

DtList DtRwIntrusiveList::myList [protected]

The actual DtList used to store the items.

Referenced by addToEnd(), addToStart(), count(), first(), firstObj(), itemLookup(), last(), and lastObj().


The documentation for this class was generated from the following file:

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)