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);
+ void registerCallback(CallbackTable callback_table);
+ int inputEvent(json_object* json_in);
std::string roleToCategory(const char* role);
private:
std::unordered_map<std::string, std::string> category2role_;
std::unordered_map<std::string, std::string> role2defaultarea_;
- struct sd_event* sd_event_;
+#if 0
+ struct AreaState {
+ std::string name;
+ std::string role;
+ } AreaState;
+
+ struct LayoutState {
+ std::string name;
+ std::vector<AreaState> areas;
+ } LayoutState;
+
+ struct LayerState {
+ std::string name;
+ LayoutState layout;
+ } LayerState;
+#endif
int initializeSdEventLoop();
- void checkPolicyEntry(int event, int delay_ms, PolicyManager::Handler handler);
// Load role.db
int loadRoleDb();