libdrmconf 0.14.1
A library to program DMR radios.
Loading...
Searching...
No Matches
intermediaterepresentation.hh
1
6
7#ifndef INTERMEDIATEREPRESENTATION_HH
8#define INTERMEDIATEREPRESENTATION_HH
9
10#include "visitor.hh"
11#include <QList>
12
13class Zone;
14class EncryptionKey;
15
16
22{
23public:
25 explicit ZoneSplitVisitor();
26
27 bool processItem(ConfigItem *item, const ErrorStack &err);
28};
29
35{
36public:
38 explicit ZoneMergeVisitor();
39
40 bool processList(AbstractConfigObjectList *list, const ErrorStack &err);
41 bool processItem(ConfigItem *item, const ErrorStack &err);
42
43protected:
47 QList<Zone *> _mergedZones;
48};
49
50
51
58{
59protected:
62
63public:
64 bool processProperty(ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err);
65 bool processList(AbstractConfigObjectList *list, const ErrorStack &err);
66
67protected slots:
69 virtual bool toRemove(ConfigItem *item) = 0;
70};
71
72
73
79{
80public:
82 explicit ObjectFilterVisitor(const std::initializer_list<QMetaObject> &types);
83
84protected slots:
85 bool toRemove(ConfigItem *item);
86
87protected:
89 QList<QMetaObject> _filter;
90};
91
92
94class EncryptionKeyFilterVisitor: public AbstractObjectFilterVisitor
95{
96public:
97 struct Filter {
98 QMetaObject type;
99 unsigned int minBits;
100 unsigned int maxBits;
101
102 Filter(const QMetaObject &type, unsigned int bits);
103 Filter(const QMetaObject &type, unsigned int minBits, unsigned int maxBits);
104
105 bool accepts(const EncryptionKey *key) const;
106 };
107
108public:
109 EncryptionKeyFilterVisitor(const std::initializer_list<Filter> &filter);
110
111protected:
112 bool toRemove(ConfigItem *item);
113
114protected:
115 QList<Filter> _filter;
116};
117
118#endif // INTERMEDIATEREPRESENTATION_HH
Generic list class for config objects.
Definition configobject.hh:251
virtual bool toRemove(ConfigItem *item)=0
Abstract test function.
AbstractObjectFilterVisitor()
Hidden constructor.
Definition intermediaterepresentation.cc:115
bool processList(AbstractConfigObjectList *list, const ErrorStack &err)
Traverses the list of objects or references.
Definition intermediaterepresentation.cc:145
bool processProperty(ConfigItem *item, const QMetaProperty &prop, const ErrorStack &err)
Processes the specified property of the item.
Definition intermediaterepresentation.cc:122
Base class for all configuration objects (channels, zones, contacts, etc).
Definition configobject.hh:35
bool toRemove(ConfigItem *item)
Abstract test function.
Definition intermediaterepresentation.cc:218
Base class of all encryption keys.
Definition encryptionextension.hh:10
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:43
QList< QMetaObject > _filter
The list of filtered types.
Definition intermediaterepresentation.hh:89
ObjectFilterVisitor(const std::initializer_list< QMetaObject > &types)
Constructor from initializer list of Qt meta objects.
Definition intermediaterepresentation.cc:170
Visitor()
Hidden constructor.
Definition visitor.cc:7
bool processList(AbstractConfigObjectList *list, const ErrorStack &err)
Traverses the list of objects or references.
Definition intermediaterepresentation.cc:58
ZoneMergeVisitor()
Constructor.
Definition intermediaterepresentation.cc:51
Zone * _lastZone
The last zone visited, nullptr if the first zone is processed.
Definition intermediaterepresentation.hh:45
QList< Zone * > _mergedZones
Zones to be removed.
Definition intermediaterepresentation.hh:47
bool processItem(ConfigItem *item, const ErrorStack &err)
Traverses the specified config item.
Definition intermediaterepresentation.cc:87
ZoneSplitVisitor()
Constructor.
Definition intermediaterepresentation.cc:11
bool processItem(ConfigItem *item, const ErrorStack &err)
Traverses the specified config item.
Definition intermediaterepresentation.cc:18
Represents a zone within the generic configuration.
Definition zone.hh:15