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

Replaces references using a specified map. More...

#include <configcopyvisitor.hh>

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

Public Member Functions

 FixReferencesVisistor (QHash< ConfigObject *, ConfigObject * > &map, bool keepUnknown=false)
 Constructor.
 
bool processProperty (ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err=ErrorStack())
 Processes the specified property of the item. More...
 
bool processList (AbstractConfigObjectList *list, const ErrorStack &err=ErrorStack())
 Traverses the list of objects or references. More...
 
- 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 processItem (ConfigItem *item, const ErrorStack &err=ErrorStack())
 Traverses the specified config item. More...
 
virtual bool processReference (ConfigObjectReference *, const ErrorStack &err=ErrorStack())
 Handles references to config objects. More...
 

Protected Attributes

QHash< ConfigObject *, ConfigObject * > & _map
 Reference to the translation table origial -> cloned object.
 
bool _keepUnknown
 If false, an unmapped reference is an error.
 

Additional Inherited Members

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

Detailed Description

Replaces references using a specified map.

This can be considered a second step in copying an entire codeplug, first all objects are cloned and in a second step, all references are fixed using this class.

Member Function Documentation

◆ processList()

bool FixReferencesVisistor::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 FixReferencesVisistor::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: