/* * 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_FILTERLEAF_H #define SMOLBOTE_FILTERLEAF_H #include #include class FilterLeaf { public: enum Action { NotMatched, Allow, Block, Redirect }; FilterLeaf(FilterLeaf &&other); FilterLeaf& operator=(FilterLeaf &&other); ~FilterLeaf() = default; virtual bool match(const QString &requestUrl) const = 0; virtual Action action() const = 0; const QString request() const; const QString redirect() const; protected: explicit FilterLeaf() = default; bool m_isBlocking; std::string m_request; std::string m_redirect; }; #endif // SMOLBOTE_FILTERLEAF_H