• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 // 2021.4.30 platform task runner adapt ohos.
5 //           Copyright (c) 2021 Huawei Device Co., Ltd. All rights reserved.
6 
7 #ifndef FLUTTER_SHELL_PLATFORM_OHOS_PLATFORM_TASK_RUNNER_ADAPTER_H
8 #define FLUTTER_SHELL_PLATFORM_OHOS_PLATFORM_TASK_RUNNER_ADAPTER_H
9 
10 #include "event_handler.h"
11 #include "event_runner.h"
12 
13 #include "flutter/fml/message_loop_impl.h"
14 #include "flutter/fml/message_loop_task_queues.h"
15 
16 namespace flutter {
17 
18 class PlatformTaskRunnerAdapter : public fml::TaskRunner {
19 public:
20     explicit PlatformTaskRunnerAdapter(bool useCurrentEventRunner);
21 
22     void PostTask(fml::closure task) override;
23 
24     void PostTaskForTime(fml::closure task, fml::TimePoint target_time) override;
25 
26     void PostDelayedTask(fml::closure task, fml::TimeDelta delay) override;
27 
28     bool RunsTasksOnCurrentThread() override;
29 
30     fml::TaskQueueId GetTaskQueueId() override;
31 
32     static fml::RefPtr<fml::TaskRunner> CurrentTaskRunner(bool useCurrentEventRunner = false);
33 
34 private:
35     static fml::RefPtr<fml::TaskRunner> taskRunner_;
36 
37     std::shared_ptr<OHOS::AppExecFwk::EventHandler> eventHandler_;
38     std::shared_ptr<OHOS::AppExecFwk::EventRunner> eventRunner_;
39 };
40 
41 }  // namespace flutter
42 
43 #endif // FLUTTER_SHELL_PLATFORM_OHOS_PLATFORM_TASK_RUNNER_ADAPTER_H