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 | |
5 | #ifndef FLUTTER_COMMON_TASK_RUNNERS_H_ |
6 | #define FLUTTER_COMMON_TASK_RUNNERS_H_ |
7 | |
8 | #include <string> |
9 | |
10 | #include "flutter/fml/macros.h" |
11 | #include "flutter/fml/task_runner.h" |
12 | |
13 | namespace flutter { |
14 | |
15 | class TaskRunners { |
16 | public: |
17 | TaskRunners(std::string label, |
18 | fml::RefPtr<fml::TaskRunner> platform, |
19 | fml::RefPtr<fml::TaskRunner> raster, |
20 | fml::RefPtr<fml::TaskRunner> ui, |
21 | fml::RefPtr<fml::TaskRunner> io); |
22 | |
23 | TaskRunners(const TaskRunners& other); |
24 | |
25 | ~TaskRunners(); |
26 | |
27 | const std::string& GetLabel() const; |
28 | |
29 | fml::RefPtr<fml::TaskRunner> GetPlatformTaskRunner() const; |
30 | |
31 | fml::RefPtr<fml::TaskRunner> GetUITaskRunner() const; |
32 | |
33 | fml::RefPtr<fml::TaskRunner> GetIOTaskRunner() const; |
34 | |
35 | fml::RefPtr<fml::TaskRunner> GetRasterTaskRunner() const; |
36 | |
37 | bool IsValid() const; |
38 | |
39 | private: |
40 | const std::string label_; |
41 | fml::RefPtr<fml::TaskRunner> platform_; |
42 | fml::RefPtr<fml::TaskRunner> raster_; |
43 | fml::RefPtr<fml::TaskRunner> ui_; |
44 | fml::RefPtr<fml::TaskRunner> io_; |
45 | }; |
46 | |
47 | } // namespace flutter |
48 | |
49 | #endif // FLUTTER_COMMON_TASK_RUNNERS_H_ |
50 |