/* * 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://library.iserlohn-fortress.net/aqua/smolbote.git * * SPDX-License-Identifier: MIT */ #ifndef SMOLBOTE_SMOLBLOK_INTERFACE_HPP #define SMOLBOTE_SMOLBLOK_INTERFACE_HPP #include #include #include class FilterList { public: virtual ~FilterList() = default; [[nodiscard]] virtual bool filter(QWebEngineUrlRequestInfo &info) const = 0; [[nodiscard]] virtual bool isUpToDate() const = 0; }; // A class to provide filter interfaces class FilterPlugin { public: virtual ~FilterPlugin() = default; virtual FilterList *load(QIODevice&) const = 0; virtual bool parse(FilterList *list, QIODevice &) const = 0; }; #define FilterPluginIid "net.iserlohn-fortress.smolbote.FilterPlugin" Q_DECLARE_INTERFACE(FilterPlugin, FilterPluginIid) #endif // SMOLBOTE_SMOLBLOK_INTERFACE_HPP