/* * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ALLOCATE_LIST_HPP #define ALLOCATE_LIST_HPP #include #include "windowmanager-client.hpp" namespace wm { class AllocateRequestList { public: AllocateRequestList(); ~AllocateRequestList(); AllocateRequestList(const AllocateRequestList &obj) = delete; typedef std::function onEndDraw; typedef std::function onReverted; // Client Database Interface bool addClient(WMClient &client); bool removeClient(const char* appid); const WMClient* loopUpClient(const char* appid); // Request Interface unsigned currentSequnceNumber(); unsigned getSequenceNumber(appid, role, area); bool addAllocateRequest(WMClient &client, unsigned seq_num, std::string &task); bool requestFinished(); unsigned lookUpAllocatingApp(const char *appid); unsigned currentSequence(); void setEndDrawFinished(unsigned request_seq, const std::string &role); void removeRequest(unsigned request_seq); void setCurrentSequence(unsigned request_seq); bool haveRequest(); /* void revertRequestingState(); void removeAllRequesting(); */ //void revertRequestingState();//??? /* bool queue(int request_num); bool pushTop(int request_num); bool dequeue(); void deleteAllElement(); void removeElement(int request_num); bool hasElement(int request_num); */ private: std::vector requestQueue; }; } #endif // ALLOCATE_LIST_HPP