// SPDX-FileCopyrightText: Matteo Settenvini // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include #include #include #include #include namespace malcontent { class Resolver; class UserPolicy { public: UserPolicy() = default; UserPolicy(const UserPolicy&) = delete; UserPolicy(UserPolicy&&) = delete; ~UserPolicy() noexcept = default; auto resolver(std::optional uid = {}) const -> std::shared_ptr; private: mutable std::unordered_map> _resolver_cache; mutable std::shared_mutex _cache_mutex; }; } // ~ namespace malcontent