libdrmconf  0.12.0
A library to program DMR radios.
Public Member Functions | Protected Attributes | List of all members
ConfigCloneVisitor Class Reference

This visitor traverses the the given configuration and clones it. More...

#include <configcopyvisitor.hh>

Inheritance diagram for ConfigCloneVisitor:
Inheritance graph
[legend]
Collaboration diagram for ConfigCloneVisitor:
Collaboration graph
[legend]

Public Member Functions

 ConfigCloneVisitor (QHash< ConfigObject *, ConfigObject * > &map)
 Constructor. More...
 
bool processProperty (ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err=ErrorStack())
 Processes the specified property of the item. More...
 
bool processItem (ConfigItem *item, const ErrorStack &err=ErrorStack())
 Traverses the specified config item. More...
 
bool processList (AbstractConfigObjectList *list, const ErrorStack &err=ErrorStack())
 Traverses the list of objects or references. More...
 
ConfigItemtakeResult (const ErrorStack &err=ErrorStack())
 Extracts the cloned item.
 
- Public Member Functions inherited from Visitor
virtual ~Visitor ()
 Destructor.
 
virtual bool process (Config *config, const ErrorStack &err=ErrorStack())
 Traverses the properties of the configuration recursively. More...
 
virtual bool processEnum (ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err=ErrorStack())
 Handles an enum typed property. More...
 
virtual bool processBool (ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err=ErrorStack())
 Handles a boolean typed property. More...
 
virtual bool processInt (ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err=ErrorStack())
 Handles an integer typed property. More...
 
virtual bool processUInt (ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err=ErrorStack())
 Handles an unsigned integer typed property. More...
 
virtual bool processDouble (ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err=ErrorStack())
 Handles a double precision float typed property. More...
 
virtual bool processString (ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err=ErrorStack())
 Handles a string typed property. More...
 
virtual bool processFrequency (ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err=ErrorStack())
 Handles a Frequency typed property. More...
 
virtual bool processInterval (ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err=ErrorStack())
 Handles a Interval typed property. More...
 
virtual bool processUnknownType (ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err=ErrorStack())
 Handles a property of unknown type. More...
 
virtual bool processReference (ConfigObjectReference *, const ErrorStack &err=ErrorStack())
 Handles references to config objects. More...
 

Protected Attributes

QList< QObject * > _stack
 Stack of the current object.
 
QHash< ConfigObject *, ConfigObject * > & _map
 Reference to the translation table origial -> cloned object.
 

Additional Inherited Members

- Protected Member Functions inherited from Visitor
 Visitor ()
 Hidden constructor.
 

Detailed Description

This visitor traverses the the given configuration and clones it.

All references are still pointing to the originals.

Constructor & Destructor Documentation

◆ ConfigCloneVisitor()

ConfigCloneVisitor::ConfigCloneVisitor ( QHash< ConfigObject *, ConfigObject * > &  map)

Constructor.

Parameters
mapSpecifies the mapping table to be filled with the created clones.

Member Function Documentation

◆ processItem()

bool ConfigCloneVisitor::processItem ( ConfigItem item,
const ErrorStack err = ErrorStack() 
)
virtual

Traverses the specified config item.

This method calls processProperty on all properties of the item.

Reimplemented from Visitor.

◆ processList()

bool ConfigCloneVisitor::processList ( AbstractConfigObjectList list,
const ErrorStack err = ErrorStack() 
)
virtual

Traverses the list of objects or references.

If list is a list of ConfigItem, the visitor will traverse those by calling processItem on every of these element. If it is a list of ConfigObjectRef references, the visitor stop here and simply return true. By default, the visitor does not follow references.

Reimplemented from Visitor.

◆ processProperty()

bool ConfigCloneVisitor::processProperty ( ConfigItem item,
const QMetaProperty &  prop,
const ErrorStack err = ErrorStack() 
)
virtual

Processes the specified property of the item.

This method dispatches to the type-specific methods like processEnum, processBool, processInt, processUInt, processDouble, processString, processItem, processReference, processList, and processUnknownType, depending on the type of the property. Do not override this method unless you need to handle all properties differently.

Reimplemented from Visitor.


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