2 * Samsung Ukraine R&D Center (SRK under a contract between)
3 * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
4 * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
7 * @file i_policy_group_enforce.h
8 * @brief Interface for policy parsing and applying
9 * @date Created May 10, 2017
10 * @author Mail to: <A HREF="mailto:a.volkov@samsung.com">Aleksey Volkov, a.volkov@samsung.com</A>
14 #ifndef IPOLICY_GRP_ENF_H
15 #define IPOLICY_GRP_ENF_H
18 #include <jsoncpp/json/value.h>
25 * @interface IPolicyGroupEnforce
26 * @brief interface for policy group applier instances. Each policy group should have own applier implementation.
27 * Used by PolicyEnforce class
30 class IPolicyGroupEnforce
37 virtual ~IPolicyGroupEnforce() {}
40 * @brief Init function. Used to init context of related module of policy group
41 * @return True in case of success, false otherwise
43 virtual bool Init() = 0;
47 * @brief De-Init function. Used to close context of related module of policy group
49 virtual void Deinit() = 0;
53 * @brief Parse and apply policies related to policy group.
54 * @param policy policy as parsed JSON object
55 * @return True in case of success, false otherwise
57 virtual bool ParseGroup(Json::Value& policy) = 0;
62 * @brief Pointer type of IPolicyGroupEnforce interface object instance
64 typedef IPolicyGroupEnforce* IPolicyGroupEnforcePtr;
70 #endif //IPOLICY_GRP_APPL_H