#include <unordered_map>
#include <vector>
-namespace stm {
-extern "C" {
-#include "dummy_stm.h"
-}
-} // namespace stm
+
+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_;
- stm::stm_state_t current_state_;
+ int initializeSdEventLoop();
// Load role.db
int loadRoleDb();
+ // Load layout.db
+ int loadLayoutDb();
+
const char* getStringFromJson(json_object* obj, const char* key);
- int getIntFromJson(json_object* obj, const char* key);
- void addStateToJson(const char* key, int is_changed, const char* state, json_object** json_out);
+ int inputJsonFilie(const char* file, json_object** obj);
std::vector<std::string> parseString(std::string str, char delimiter);
std::string deleteSpace(std::string str);
+
};
+
+extern const char* getStringFromJson(json_object* obj, const char* key);
+extern int getIntFromJson(json_object* obj, const char* key);
+
+
#endif // TMCAGLWM_POLICY_MANAGER_HPP