VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions
DtRwFactoryItemList< T > Class Template Reference

template<typename T>
class DtRwFactoryItemList< T >

Templated RW list which contains items generated from a factory all sharing the same parent type. T is the parent type Requirements of T: T must derive from DtReaderWriter T::FactoryKeyType must be the type of key used to generate subclasses from the factory. virtual T::type() must return the type identifier for the subclass, and be of type T::FactoryKeyType static T::createFromFactory( <type> ) return a new instance of the subclass of T identified by <type>, a T::FactoryKeyType virtual T::clone() must return a new clone of the subclass with no reference to the origianl instance.

Inheritance diagram for DtRwFactoryItemList< T >:
Inheritance graph
[legend]

Public Types

typedef DtIteratorBase< T > iterator
 
typedef DtIteratorBase< const T > const_iterator
 
- Public Types inherited from DtReaderWriter
typedef std::vector
< DtSymbolString
aliasContainer
 
typedef std::vector
< DtSymbolString >::iterator 
aliasIter
 
typedef std::vector
< DtSymbolString >
::const_iterator 
aliasConstIter
 
typedef std::vector< DtFilename > SearchPaths
 
typedef std::pair
< DtSymbolString, DtString
DtVariableNameType
 
typedef DtReaderWriterFactory *(* DtReaderWriterFactoryCreatorFcn )()
 

Public Member Functions

 DtRwFactoryItemList ()
 
 DtRwFactoryItemList (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtRwFactoryItemList (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtRwFactoryItemList (const DtString &name, const DtRwFactoryItemList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtRwFactoryItemList (const DtSymbolString &name, const DtRwFactoryItemList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtRwFactoryItemList (const DtRwFactoryItemList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 
DtRwFactoryItemListoperator= (const DtRwFactoryItemList &orig)
 
virtual ~DtRwFactoryItemList ()
 
DtlObjPtr getData (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
 
virtual DtListItem * add (T *data)
 
virtual DtListItem * addToStart (T *data)
 
virtual DtListItem * addToEnd (T *data)
 
void removeAll ()
 
void * remove (DtListItem *item)
 
void * remove (T *item)
 
void removeAndDeleteAll ()
 
virtual void prePutSelf ()
 
void copyList (const DtRwFactoryItemList &orig)
 
- Public Member Functions inherited from DtRwList
 DtRwList ()
 
 DtRwList (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtRwList (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL)
 
virtual ~DtRwList ()
 
const DtRwListoperator= (const DtRwList &orig)
 
virtual DtListItem * add (DtReaderWriter *data)
 
virtual DtListItem * addWithAlternateName (DtReaderWriter *data, const DtString &name)
 
virtual DtListItem * addToStart (DtReaderWriter *data)
 
virtual DtListItem * addToEnd (DtReaderWriter *data)
 
virtual void * remove (DtReaderWriter *data, DtListItem *item)
 
virtual DtlObjPtr getLocalData (DtlObjPtr args)
 
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 
virtual void getSelf (const DtEnvironmentSP, const DtEnvValueSP root, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList())
 
virtual DtListItem * addBefore (DtReaderWriter *data, DtReaderWriter *before)
 
virtual DtListItem * addAfter (DtReaderWriter *data, DtReaderWriter *after)
 
virtual void reset ()
 
virtual const charreaderWriterType () const
 
bool operator== (const DtRwList &rhs) const
 
bool operator!= (const DtRwList &rhs) const
 
virtual void populateList (boost::function< void(DtReaderWriter *)> addFunction, DtEnvironmentSP env, DtEnvValueSP node, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &bindings)
 
virtual void populateListByType (boost::function< void(DtReaderWriter *)> addFunction, DtEnvironmentSP env, DtEnvValueSP node, const DtString &bindingType, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &bindings)
 
 DtRwList (const DtString &name, const DtRwList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtRwList (const DtSymbolString &name, const DtRwList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 
virtual DtListItem * addBefore (DtReaderWriter *data, const DtString &before)
 
virtual DtListItem * addBefore (DtReaderWriter *data, const DtSymbolString &before)
 
virtual DtListItem * addAfter (DtReaderWriter *data, const DtString &after)
 
virtual DtListItem * addAfter (DtReaderWriter *data, const DtSymbolString &after)
 
virtual void putData (DtEnvironmentSP, DtEnvValueSP parent) const
 
virtual void getData (const DtEnvironmentSP, const DtEnvValueSP value, const DtReaderWriter::SearchPaths &searchPaths=DtReaderWriter::SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList())
 
virtual const charxmlType () const
 
virtual std::set< DtStringsupportedXmlTypes () 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 DtReaderWriteroperator= (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 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 aliasContaineraliases () 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 &)
 
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 DtReaderWriterdefaultRWValue () const
 
virtual DtReaderWriterdefaultRWValue ()
 
virtual void setDefaultRWValue (DtReaderWriter *)
 
virtual bool checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 
const DtReaderWriterRegistryregistry () const
 
DtReaderWriterRegistryregistry ()
 
virtual DtPropertyInterfaceproperty ()
 
virtual const DtPropertyInterfaceproperty () const
 
virtual DtString toXml () const
 
virtual DtRwVariableBindingsgenerateVariableBindings () 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 unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings)
 
virtual void getVariableReference (DtEnvironmentSP, DtEnvValueSP value)
 

Additional Inherited Members

- Static Public Member Functions inherited from DtRwList
static const chartheXmlType ()
 
- Static Public Member Functions inherited from DtReaderWriter
static void putIndent (std::string &fp, int indentLevel)
 
static const
DtVariableBindingsList
nullVariableReference ()
 
static void setPostGetSelfCallback (DtGetSelfCallbackFcn fcn, void *usrData)
 
static void setPrePutSelfCallback (DtPutSelfCallbackFcn fcn, void *usrData)
 
static void setPutIndent (bool)
 
static bool putIndent ()
 
static const chartheXmlType ()
 
static const DtFilename & appPath ()
 
static void setFactoryCreatorFunction (DtReaderWriterFactoryCreatorFcn fcn)
 
static void createReaderWriterFactory ()
 
static void cleanupFactory ()
 
static DtReaderWriterFactoryfactory ()
 
static void setOutputStream (DtOutputStream *stream)
 
static DtOutputStream & outputStream ()
 
static DtReaderWritercreateFromXmlFile (const DtFilename &, bool createAsProperty=false)
 
static DtReaderWritercreateFromXml (const DtString &, bool createAsProperty=false)
 
static DtReaderWritercreateFromEnvironment (DtEnvironmentSP, bool createAsProperty=false)
 
static DtString getAttribute (DtEnvironmentSP env, const DtString &name, DtEnvValueSP root)
 
- Protected Member Functions inherited from DtRwList
virtual DtListItem * addBefore (DtReaderWriter *data, DtListItem *before)
 
virtual DtListItem * addAfter (DtReaderWriter *data, DtListItem *after)
 
- Protected Member Functions inherited from DtReaderWriter
virtual void bindToRwAsVariable (const DtReaderWriter *rw)
 
- Protected Attributes inherited from DtReaderWriter
const DtSymbolString myName
 
DtReaderWriterRegistry myRegistry
 
DtReaderWriterRegistrymyParentRegistry
 
bool myValueSpecified
 
bool myReadOnlyFlag
 
bool myIsVariableReference
 
DtSymbolString myVariableName
 
bool myVariableIsBound
 
DtReaderWritermyDefaultValue
 
aliasContainer myAliases
 
bool myInvalid
 
bool myChangedFlag
 
- Static Protected Attributes inherited from DtReaderWriter
static DtString theUnspecifiedValue
 
static DtGetSelfCallbackInfo thePostGetSelfCallback
 
static DtPutSelfCallbackInfo thePrePutSelfCallback
 
static const DtVariableBindingsList theEmptyVariableBindingsList
 
static bool theCreatorFcnSet
 
static DtReaderWriterFactorytheFactory
 
static
DtReaderWriterFactoryCreatorFcn 
theFactoryCreatorFcn
 
static bool thePutIndent
 
static DtOutputStream * theOutputStream
 

Member Typedef Documentation

template<typename T >
typedef DtIteratorBase<T> DtRwFactoryItemList< T >::iterator
template<typename T >
typedef DtIteratorBase<const T> DtRwFactoryItemList< T >::const_iterator

Constructor & Destructor Documentation

template<typename T >
DtRwFactoryItemList< T >::DtRwFactoryItemList ( )

default constructor

template<typename T >
DtRwFactoryItemList< T >::DtRwFactoryItemList ( const DtString name,
DtReaderWriterRegistry parentRegistry = NULL 
)

real constructor

template<typename T >
DtRwFactoryItemList< T >::DtRwFactoryItemList ( const DtSymbolString name,
DtReaderWriterRegistry parentRegistry = NULL 
)
template<typename T >
DtRwFactoryItemList< T >::DtRwFactoryItemList ( const DtString name,
const DtRwFactoryItemList< T > &  orig,
DtReaderWriterRegistry parentRegistry = NULL 
)

Invokes DtReaderWriter copy constructor. Elements are copied using their standard copy constructor.

template<typename T >
DtRwFactoryItemList< T >::DtRwFactoryItemList ( const DtSymbolString name,
const DtRwFactoryItemList< T > &  orig,
DtReaderWriterRegistry parentRegistry = NULL 
)
template<typename T >
DtRwFactoryItemList< T >::DtRwFactoryItemList ( const DtRwFactoryItemList< T > &  orig,
DtReaderWriterRegistry parentRegistry = NULL 
)

... and make sure the default constructor is overridden:

template<typename T >
virtual DtRwFactoryItemList< T >::~DtRwFactoryItemList ( )
virtual

Member Function Documentation

template<typename T >
DtRwFactoryItemList& DtRwFactoryItemList< T >::operator= ( const DtRwFactoryItemList< T > &  orig)
template<typename T >
DtlObjPtr DtRwFactoryItemList< T >::getData ( DtlObjPtr  args,
const DtReaderWriter::SearchPaths searchPaths,
const DtVariableBindingsList variableBindings 
)
virtual

This method must be overridden by a subclass. Within this method, new instances of the DtReaderWriter subclass that is being handled by this list must be created, and then retrieved from the mtl stream, using the getSelf member of that item.

Here is some sample code that could be used to implement a override of this class: (This is used in the DtRwIntegerList::getData() method)
DtlObjPtr nameObj = DtcCar(args);
DtRwInt* value = new DtRwInt(nameObj->pname());
value->getSelf(args, searchPaths, variableBindings);
this->add(value);
return DtcCdr(DtcCdr(args));

Implements DtRwList.

template<typename T >
virtual DtListItem* DtRwFactoryItemList< T >::add ( T *  data)
virtual

Define this function to hide the DtRwList version, and accept only the specific DtReaderWriter subclass that this list is handling. Clones the item passed in.

template<typename T >
virtual DtListItem* DtRwFactoryItemList< T >::addToStart ( T *  data)
virtual

Inserts at front of list. Clones item added.

template<typename T >
virtual DtListItem* DtRwFactoryItemList< T >::addToEnd ( T *  data)
virtual

Appends to end of list. Clones item added.

template<typename T >
void DtRwFactoryItemList< T >::removeAll ( )
virtual

Removes all entries from the list. If autoDelete is true, also deletes all items.

Reimplemented from DtRwList.

template<typename T >
void* DtRwFactoryItemList< T >::remove ( DtListItem *  item)
template<typename T >
void* DtRwFactoryItemList< T >::remove ( T *  item)
template<typename T >
void DtRwFactoryItemList< T >::removeAndDeleteAll ( )
virtual

Removes and deletes all entries in the list.

Reimplemented from DtRwList.

template<typename T >
virtual void DtRwFactoryItemList< T >::prePutSelf ( )
inlinevirtual

Called before either version of put self (file or environment). Default is no-op.

Reimplemented from DtReaderWriter.

References DtIteratorBase< T >::first(), DtIteratorBase< T >::next(), and DtReaderWriter::prePutSelf().

template<typename T >
void DtRwFactoryItemList< T >::copyList ( const DtRwFactoryItemList< T > &  orig)

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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)