struct json_object;
+struct sd_event;
+
class PolicyManager {
explicit PolicyManager();
~PolicyManager() = default;
+ using Handler = std::function<void(json_object *)>;
+
+ typedef struct {
+ Handler onStateTransitioned;
+ Handler onError;
+ } CallbackTable;
+
int initialize();
- int checkPolicy(json_object* json_in, json_object** json_out);
- std::string roleToCategory(const char* role);
+ void registerCallback(CallbackTable callback_table);
+ int inputEvent(json_object* json_in);
+
private:
// Disable copy and move
PolicyManager(PolicyManager const &) = delete;
std::unordered_map<std::string, std::string> category2role_;
std::unordered_map<std::string, std::string> role2defaultarea_;
+ int initializeSdEventLoop();
+
// Load role.db
int loadRoleDb();
+ // Load layout.db
+ int loadLayoutDb();
+
const char* getStringFromJson(json_object* obj, const char* key);
int inputJsonFilie(const char* file, json_object** obj);
- void addStateToJson(const char* key, int is_changed, const char* state, json_object** json_out);
std::vector<std::string> parseString(std::string str, char delimiter);
std::string deleteSpace(std::string str);
+
};