X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fapplist.hpp;h=a794b532c8072cab37f1aedcafd93fa6b9987b5d;hb=e47483c55216ad9bf2947caaaa686fae2cceaf4c;hp=97f772b82ad562bc326a127fdfeb1db1ba691f8d;hpb=1e55798ce66d927f649284441202bc6ae1df328b;p=apps%2Fagl-service-windowmanager.git diff --git a/src/applist.hpp b/src/applist.hpp index 97f772b..a794b53 100644 --- a/src/applist.hpp +++ b/src/applist.hpp @@ -20,9 +20,10 @@ #include #include #include -#include "wm-client.hpp" +#include +#include "wm_client.hpp" #include "request.hpp" -#include "wm-error.h" +#include "wm_error.hpp" namespace wm { @@ -38,40 +39,42 @@ class AppList AppList(const AppList &obj) = delete; // Client Database Interface - void addClient(const std::string &appid, const std::string &role); - void addClient(const std::string &appid, unsigned layer, unsigned surface, const std::string &role); + /* TODO: consider, which is better WMClient as parameter or not + If the WMClient should be more flexible, I think this param should be WMClient class + */ + void addClient(const std::string &appid, unsigned layer, + unsigned surface,const std::string &role); void removeClient(const std::string &appid); - WMError contains(const std::string &appid); - int countClient(); + bool contains(const std::string &appid) const; + int countClient() const; std::shared_ptr lookUpClient(const std::string &appid); void removeSurface(unsigned surface); + std::string getAppID(unsigned surface, const std::string &role, bool *found) const; // Request Interface - unsigned currentSequenceNumber(); - unsigned getSequenceNumber(const std::string &appid); - unsigned addAllocateRequest(WMRequest req); - /* TODO: consider, which is better WMClient or std::string appid? - if appid is key to manage resources, it is better to select std::string - otherwise WMClient is better, IMO */ - bool requestFinished(); + unsigned currentRequestNumber() const; + unsigned getRequestNumber(const std::string &appid) const; + unsigned addRequest(WMRequest req); WMError setAction(unsigned req_num, const struct WMAction &action); - WMError setAction(unsigned req_num, const std::string &appid, const std::string &role, const std::string &area, bool visible = true); + WMError setAction(unsigned req_num, const std::string &appid, + const std::string &role, const std::string &area, TaskVisible visible); bool setEndDrawFinished(unsigned req_num, const std::string &appid, const std::string &role); bool endDrawFullfilled(unsigned req_num); void removeRequest(unsigned req_num); void next(); - bool haveRequest(); + bool haveRequest() const; - struct WMTrigger getRequest(unsigned req_num); - const std::vector &getActions(unsigned req_num); + struct WMTrigger getRequest(unsigned req_num, bool* found); + const std::vector &getActions(unsigned req_num, bool* found); - void client_dump(); - void req_dump(); + void clientDump(); + void reqDump(); private: std::vector req_list; - std::unordered_map> client_list; - unsigned current_seq; + std::unordered_map> app2client; + unsigned current_req; + std::mutex mtx; }; } // namespace wm