aboutsummaryrefslogtreecommitdiff
path: root/lib/urlfilter/filtertree.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/urlfilter/filtertree.h')
-rw-r--r--lib/urlfilter/filtertree.h61
1 files changed, 0 insertions, 61 deletions
diff --git a/lib/urlfilter/filtertree.h b/lib/urlfilter/filtertree.h
deleted file mode 100644
index f453a3d..0000000
--- a/lib/urlfilter/filtertree.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * This file is part of smolbote. It's copyrighted by the contributors recorded
- * in the version control history of the file, available from its original
- * location: https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote
- *
- * SPDX-License-Identifier: GPL-3.0
- */
-
-#ifndef SMOLBOTE_FILTERTREE_H
-#define SMOLBOTE_FILTERTREE_H
-
-#include "domain.h"
-#include "filterleaf.h"
-#include <QIODevice>
-#include <QObject>
-#include <QVector>
-#include <vector>
-#include <QMutex>
-
-/** FilterTree: B+ tree of filter rules
- * The tree contains branches that represent domains
- * Each domain-branch contains leaves (rules) that are to be applied to it.
- * Rules may be applied to multiple branches.
- */
-class FilterTree : public QObject
-{
- Q_OBJECT
-
-public:
- ~FilterTree();
-
- const QStringList branches() const;
- QVector<const FilterLeaf *> match(const QUrl &domain, const QUrl &requestUrl) const;
-
- bool addRule(FilterLeaf *rule, const QString &domain);
-
-private:
- struct Branch {
- explicit Branch(const QString &host)
- : domain(host)
- {
- }
- explicit Branch(Branch &&other)
- : domain(std::move(other.domain))
- , leaves(std::move(other.leaves))
- {
- }
-
- Domain domain;
- std::vector<FilterLeaf *> leaves;
- };
-
- Branch& branch(const QString &domain);
-
- QMutex branchLock;
- std::vector<Branch> m_branches;
-};
-
-bool loadHostlist(QIODevice &from, FilterTree *tree);
-
-#endif // SMOLBOTE_FILTERTREE_H