struct json_object;
struct sd_event;
+
class PolicyManager {
public:
using Handler = std::function<void(json_object *)>;
+ typedef struct {
+ Handler onStateTransitioned;
+ Handler onError;
+ } CallbackTable;
+
int initialize();
- void setEventHandler(PolicyManager::Handler handler);
- int inputEvent(json_object* json_in, PolicyManager::Handler notify_state);
- std::string roleToCategory(const char* role);
+ void registerCallback(CallbackTable callback_table);
+ int setInputEventData(json_object* json_in);
+ int executeStateTransition();
+ void undoState();
private:
// Disable copy and move
std::unordered_map<std::string, std::string> category2role_;
std::unordered_map<std::string, std::string> role2defaultarea_;
- struct sd_event* sd_event_;
-
int initializeSdEventLoop();
- void checkPolicyEntry(int event, int delay_ms, PolicyManager::Handler handler);
// 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);
std::vector<std::string> parseString(std::string str, char delimiter);