// Copyright (C) 2014-2026 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. #pragma once #include #include #include #include namespace vsomeip_v3 { struct policy; class VSOMEIP_IMPORT_EXPORT policy_manager { public: virtual ~policy_manager() { } virtual std::shared_ptr create_policy() const = 0; virtual void print_policy(const std::shared_ptr& _policy) const = 0; virtual bool parse_uid_gid(const byte_t*& _buffer, uint32_t& _buffer_size, uid_t& _uid, gid_t& _gid) const = 0; virtual bool parse_policy(const byte_t*& _buffer, uint32_t& _buffer_size, uid_t& _uid, gid_t& _gid, const std::shared_ptr& _policy) const = 0; virtual bool is_policy_update_allowed(uid_t _uid, std::shared_ptr& _policy) const = 0; virtual bool is_policy_removal_allowed(uid_t _uid) const = 0; }; } // namespace vsomeip_v3