LeechCraft
0.6.70-19424-g027e980fd1
Modular cross-platform feature rich live environment.
Toggle main menu visibility
Loading...
Searching...
No Matches
ianemitter.h
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2014 Georg Rudoy
4
*
5
* Distributed under the Boost Software License, Version 1.0.
6
* (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7
**********************************************************************/
8
9
#pragma once
10
11
#include <variant>
12
#include <QObject>
13
#include <QVariant>
14
#include <QStringList>
15
#include <QRegularExpression>
16
17
namespace
LC::AN
18
{
29
struct
FieldData
30
{
36
QString
ID_
;
37
42
QString
Name_
;
43
49
QString
Description_
;
50
60
QMetaType::Type
Type_
= QMetaType::UnknownType;
61
68
QStringList
EventTypes_
;
69
70
struct
AllowedValue
71
{
74
QByteArray
Id_
;
75
78
QString
Name_
;
79
80
bool
operator==
(
const
AllowedValue
&)
const
=
default
;
81
};
82
83
using
AllowedValues
=
QList<AllowedValue>
;
84
93
AllowedValues
AllowedValues_
= {};
94
};
95
98
struct
BoolValueMatcher
99
{
102
bool
Value_
;
103
104
auto
operator<=>
(
const
BoolValueMatcher
&)
const
=
default
;
105
};
106
109
struct
IntValueMatcher
110
{
113
int
Boundary_
;
114
117
enum
Operation
118
{
121
OGreater
= 0x01,
122
125
OLess
= 0x02,
126
129
OEqual
= 0x04
130
};
131
132
Q_DECLARE_FLAGS
(Operations,
Operation
)
133
134
138
Operations
Ops_
=
OEqual
;
139
140
bool
operator== (const
IntValueMatcher
&) const = default;
141
};
142
145
struct
StringValueMatcher
146
{
147
struct
Exact
148
{
149
QString
Pattern_
;
150
bool
operator==
(
const
Exact
&)
const
=
default
;
151
};
152
153
struct
Substring
154
{
155
QString
Pattern_
;
156
bool
operator==
(
const
Substring
&)
const
=
default
;
157
};
158
159
struct
Wildcard
160
{
161
QString
Pattern_
;
162
QRegularExpression
Compiled_
= QRegularExpression::fromWildcard (
Pattern_
);
163
164
bool
operator==
(
const
Wildcard
&)
const
=
default
;
165
};
166
167
struct
Pattern
: std::variant<Substring, Wildcard, QRegularExpression, Exact>
168
{
169
using
variant::variant;
170
171
explicit
(
false
)
Pattern
(
const
QString& str)
172
: variant {
Exact
{ str } }
173
{
174
}
175
176
using
Base
= variant;
177
};
178
181
Pattern
Pattern_
=
Exact
{};
182
188
bool
Positive_
=
true
;
189
190
bool
operator==
(
const
StringValueMatcher
&)
const
=
default
;
191
};
192
195
using
ValueMatcher
= std::variant<BoolValueMatcher, IntValueMatcher, StringValueMatcher>;
196
}
197
212
class
Q_DECL_EXPORT
IANEmitter
213
{
214
public
:
215
virtual
~IANEmitter
() =
default
;
216
232
virtual
QList<LC::AN::FieldData>
GetANFields
()
const
= 0;
233
};
234
235
Q_DECLARE_INTERFACE (
IANEmitter
,
"org.Deviant.LeechCraft.IANEmitter/1.0"
)
236
Q_DECLARE_METATYPE
(
LC
::AN::FieldData)
237
Q_DECLARE_METATYPE
(
LC
::AN::
ValueMatcher
)
238
239
Q_DECLARE_OPERATORS_FOR_FLAGS (
LC
::AN::IntValueMatcher::Operations)
IANEmitter
Interface for plugins emitting AdvancedNotifications entries.
Definition
ianemitter.h:213
IANEmitter::~IANEmitter
virtual ~IANEmitter()=default
IANEmitter::GetANFields
virtual QList< LC::AN::FieldData > GetANFields() const =0
Returns the list of additional fields.
QList
Definition
ianrulesstorage.h:16
operator==
auto operator==(const T &left, const T &right)
Definition
common.h:21
LC::AN
Definition
constants.h:15
LC::AN::Q_DECLARE_FLAGS
Q_DECLARE_FLAGS(NotifyFlags, NotifyFlag)
LC::AN::ValueMatcher
std::variant< BoolValueMatcher, IntValueMatcher, StringValueMatcher > ValueMatcher
A matcher for a value of any supported type.
Definition
ianemitter.h:195
LC
Definition
constants.h:15
LC::AN::BoolValueMatcher
Matches boolean values.
Definition
ianemitter.h:99
LC::AN::BoolValueMatcher::operator<=>
auto operator<=>(const BoolValueMatcher &) const =default
LC::AN::BoolValueMatcher::Value_
bool Value_
The value to match.
Definition
ianemitter.h:102
LC::AN::FieldData::AllowedValue
Definition
ianemitter.h:71
LC::AN::FieldData::AllowedValue::operator==
bool operator==(const AllowedValue &) const =default
LC::AN::FieldData::AllowedValue::Name_
QString Name_
Human-readable name of the value.
Definition
ianemitter.h:78
LC::AN::FieldData::AllowedValue::Id_
QByteArray Id_
Persistent, stable value stored in rules on disk.
Definition
ianemitter.h:74
LC::AN::FieldData
A single additional AdvancedNotifications field.
Definition
ianemitter.h:30
LC::AN::FieldData::ID_
QString ID_
The field ID.
Definition
ianemitter.h:36
LC::AN::FieldData::EventTypes_
QStringList EventTypes_
The types of the event that contain this field.
Definition
ianemitter.h:68
LC::AN::FieldData::Type_
QMetaType::Type Type_
The type of this field.
Definition
ianemitter.h:60
LC::AN::FieldData::Name_
QString Name_
The name of the field.
Definition
ianemitter.h:42
LC::AN::FieldData::AllowedValues_
AllowedValues AllowedValues_
The allowed values of this field.
Definition
ianemitter.h:93
LC::AN::FieldData::AllowedValues
QList< AllowedValue > AllowedValues
Definition
ianemitter.h:83
LC::AN::FieldData::Description_
QString Description_
The description of the field.
Definition
ianemitter.h:49
LC::AN::IntValueMatcher
Matches integer values.
Definition
ianemitter.h:110
LC::AN::IntValueMatcher::Operation
Operation
Describes the elementary semantics of Boundary_.
Definition
ianemitter.h:118
LC::AN::IntValueMatcher::OEqual
@ OEqual
The value should be equal to Boundary_.
Definition
ianemitter.h:129
LC::AN::IntValueMatcher::OGreater
@ OGreater
The value should be greater than Boundary_.
Definition
ianemitter.h:121
LC::AN::IntValueMatcher::OLess
@ OLess
The value should be less than Boundary_.
Definition
ianemitter.h:125
LC::AN::IntValueMatcher::Boundary_
int Boundary_
The boundary to compare the matched values against.
Definition
ianemitter.h:113
LC::AN::IntValueMatcher::Ops_
Operations Ops_
Describe the semantics of Boundary_.
Definition
ianemitter.h:138
LC::AN::IntValueMatcher::operator==
bool operator==(const IntValueMatcher &) const =default
LC::AN::StringValueMatcher::Exact
Definition
ianemitter.h:148
LC::AN::StringValueMatcher::Exact::Pattern_
QString Pattern_
Definition
ianemitter.h:149
LC::AN::StringValueMatcher::Pattern
Definition
ianemitter.h:168
LC::AN::StringValueMatcher::Pattern::Base
variant Base
Definition
ianemitter.h:176
LC::AN::StringValueMatcher::Substring
Definition
ianemitter.h:154
LC::AN::StringValueMatcher::Substring::Pattern_
QString Pattern_
Definition
ianemitter.h:155
LC::AN::StringValueMatcher::Wildcard
Definition
ianemitter.h:160
LC::AN::StringValueMatcher::Wildcard::Compiled_
QRegularExpression Compiled_
Definition
ianemitter.h:162
LC::AN::StringValueMatcher::Wildcard::Pattern_
QString Pattern_
Definition
ianemitter.h:161
LC::AN::StringValueMatcher
Matches string values.
Definition
ianemitter.h:146
LC::AN::StringValueMatcher::Positive_
bool Positive_
Whether the values should match or not match Pattern_.
Definition
ianemitter.h:188
LC::AN::StringValueMatcher::Pattern_
Pattern Pattern_
The pattern the values should (not) match.
Definition
ianemitter.h:181
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(QVariantList *)
src
interfaces
an
ianemitter.h
Generated by
1.18.0