1 /* 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OHOS_APP_DISPATCHER_TASK_HANDLER_LIBEVENT_ADAPTER_H 17 #define OHOS_APP_DISPATCHER_TASK_HANDLER_LIBEVENT_ADAPTER_H 18 19 #include <string> 20 #include "task_dispatcher_handler.h" 21 #include "runnable.h" 22 #include "event_runner.h" 23 #include "event_handler.h" 24 #include "event_queue.h" 25 namespace OHOS { 26 namespace AppExecFwk { 27 class TaskHandlerLibeventAdapter final : public EventHandler, public TaskDispatcherHandler { 28 public: TaskHandlerLibeventAdapter(const std::shared_ptr<EventRunner> & eventRunner)29 TaskHandlerLibeventAdapter(const std::shared_ptr<EventRunner> &eventRunner) : EventHandler(eventRunner){}; ~TaskHandlerLibeventAdapter()30 virtual ~TaskHandlerLibeventAdapter(){}; Dispatch(const std::shared_ptr<Runnable> & runnable)31 bool Dispatch(const std::shared_ptr<Runnable> &runnable) override 32 { 33 HILOG_INFO("TaskHandlerLibeventAdapter::Dispatch called."); 34 return EventHandler::PostTask(*(runnable.get()), EventQueue::Priority::HIGH); 35 } 36 Dispatch(const std::shared_ptr<Runnable> & runnable,long delayMs)37 bool Dispatch(const std::shared_ptr<Runnable> &runnable, long delayMs) override 38 { 39 HILOG_INFO("TaskHandlerLibeventAdapter::Delay Dispatch called."); 40 return EventHandler::PostTask(*(runnable.get()), delayMs, EventQueue::Priority::HIGH); 41 } DispatchSync(const std::shared_ptr<Runnable> & runnable)42 bool DispatchSync(const std::shared_ptr<Runnable> &runnable) override 43 { 44 HILOG_INFO("TaskHandlerLibeventAdapter::Delay Dispatch Sync called."); 45 return EventHandler::PostSyncTask(*(runnable.get()), EventQueue::Priority::HIGH); 46 } 47 }; 48 } // namespace AppExecFwk 49 } // namespace OHOS 50 51 #endif 52