Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
FlutterFMLTaskRunner.mm
Go to the documentation of this file.
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
6
7#include <utility>
8
10
11@implementation FlutterFMLTaskRunner {
13}
14
15- (instancetype)initWithTaskRunner:(fml::RefPtr<fml::TaskRunner>)task_runner {
16 FML_DCHECK(task_runner);
17 if (self = [super init]) {
18 _taskRunner = std::move(task_runner);
19 }
20 return self;
21}
22
23- (void)postTask:(void (^)(void))task {
24 FML_DCHECK(task);
25 _taskRunner->PostTask([task]() { task(); });
26}
27
28- (void)runNowOrPostTask:(void (^)(void))task {
29 FML_DCHECK(task);
30 fml::TaskRunner::RunNowOrPostTask(_taskRunner, [task]() { task(); });
31}
32
33- (void)postTaskWithDelay:(NSTimeInterval)delay task:(void (^)(void))task {
34 FML_DCHECK(task);
35 _taskRunner->PostDelayedTask([task]() { task(); }, fml::TimeDelta::FromSecondsF(delay));
36}
37
38- (BOOL)runsTasksOnCurrentThread {
39 return _taskRunner->RunsTasksOnCurrentThread();
40}
41
42- (fml::RefPtr<fml::TaskRunner>)taskRunner {
43 return _taskRunner;
44}
45
46@end
static void RunNowOrPostTask(const fml::RefPtr< fml::TaskRunner > &runner, const fml::closure &task)
static constexpr TimeDelta FromSecondsF(double seconds)
Definition time_delta.h:53
#define FML_DCHECK(condition)
Definition logging.h:122
int BOOL