Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
flutter::testing::EmbedderTestTaskRunner Class Reference

A task runner that we expect the embedder to provide but whose implementation is a real FML task runner. More...

#include <embedder_unittests_util.h>

Public Types

using TaskExpiryCallback = std::function< void(FlutterTask)>
 
using DestructionCallback = std::function< void()>
 

Public Member Functions

 EmbedderTestTaskRunner (fml::RefPtr< fml::TaskRunner > real_task_runner, TaskExpiryCallback on_task_expired)
 
 EmbedderTestTaskRunner (fml::RefPtr< fml::TaskRunner > real_task_runner, TaskExpiryCallback on_task_expired, std::function< void()> destruction_callback)
 
const FlutterTaskRunnerDescriptionGetFlutterTaskRunnerDescription ()
 

Detailed Description

A task runner that we expect the embedder to provide but whose implementation is a real FML task runner.

Definition at line 104 of file embedder_unittests_util.h.

Member Typedef Documentation

◆ DestructionCallback

Definition at line 107 of file embedder_unittests_util.h.

◆ TaskExpiryCallback

Constructor & Destructor Documentation

◆ EmbedderTestTaskRunner() [1/2]

flutter::testing::EmbedderTestTaskRunner::EmbedderTestTaskRunner ( fml::RefPtr< fml::TaskRunner real_task_runner,
TaskExpiryCallback  on_task_expired 
)
inline

Definition at line 109 of file embedder_unittests_util.h.

111 : EmbedderTestTaskRunner(std::move(real_task_runner),
112 std::move(on_task_expired),
113 {}) {}
EmbedderTestTaskRunner(fml::RefPtr< fml::TaskRunner > real_task_runner, TaskExpiryCallback on_task_expired)

◆ EmbedderTestTaskRunner() [2/2]

flutter::testing::EmbedderTestTaskRunner::EmbedderTestTaskRunner ( fml::RefPtr< fml::TaskRunner real_task_runner,
TaskExpiryCallback  on_task_expired,
std::function< void()>  destruction_callback 
)
inline

Definition at line 115 of file embedder_unittests_util.h.

118 : identifier_(++sEmbedderTaskRunnerIdentifiers),
119 real_task_runner_(std::move(real_task_runner)),
120 on_task_expired_(std::move(on_task_expired)),
121 destruction_callback_(std::move(destruction_callback)) {
122 FML_CHECK(real_task_runner_);
123 FML_CHECK(on_task_expired_);
124
125 task_runner_description_.struct_size = sizeof(FlutterTaskRunnerDescription);
126 task_runner_description_.user_data = this;
127 task_runner_description_.runs_task_on_current_thread_callback =
128 [](void* user_data) -> bool {
129 return reinterpret_cast<EmbedderTestTaskRunner*>(user_data)
130 ->real_task_runner_->RunsTasksOnCurrentThread();
131 };
132 task_runner_description_.post_task_callback = [](FlutterTask task,
133 uint64_t target_time_nanos,
134 void* user_data) -> void {
135 auto thiz = reinterpret_cast<EmbedderTestTaskRunner*>(user_data);
136
137 auto target_time = fml::TimePoint::FromEpochDelta(
138 fml::TimeDelta::FromNanoseconds(target_time_nanos));
139 auto on_task_expired = thiz->on_task_expired_;
140 auto invoke_task = [task, on_task_expired]() { on_task_expired(task); };
141 auto real_task_runner = thiz->real_task_runner_;
142
143 real_task_runner->PostTaskForTime(invoke_task, target_time);
144 };
145 if (destruction_callback_) {
146 task_runner_description_.destruction_callback = [](void* user_data) {
147 auto thiz = reinterpret_cast<EmbedderTestTaskRunner*>(user_data);
148 thiz->destruction_callback_();
149 };
150 } else {
151 task_runner_description_.destruction_callback = [](void* user_data) {};
152 }
153 task_runner_description_.identifier = identifier_;
154 }
virtual void PostTaskForTime(const fml::closure &task, fml::TimePoint target_time)
virtual bool RunsTasksOnCurrentThread()
static constexpr TimeDelta FromNanoseconds(int64_t nanos)
Definition time_delta.h:40
static constexpr TimePoint FromEpochDelta(TimeDelta ticks)
Definition time_point.h:43
#define FML_CHECK(condition)
Definition logging.h:104
size_t struct_size
The size of this struct. Must be sizeof(FlutterTaskRunnerDescription).
Definition embedder.h:1902
BoolCallback runs_task_on_current_thread_callback
Definition embedder.h:1908
FlutterTaskRunnerPostTaskCallback post_task_callback
Definition embedder.h:1919
VoidCallback destruction_callback
The callback invoked when the task runner is destroyed.
Definition embedder.h:1924

References FlutterTaskRunnerDescription::destruction_callback, FML_CHECK, fml::TimePoint::FromEpochDelta(), fml::TimeDelta::FromNanoseconds(), FlutterTaskRunnerDescription::identifier, FlutterTaskRunnerDescription::post_task_callback, FlutterTaskRunnerDescription::runs_task_on_current_thread_callback, fml::TaskRunner::RunsTasksOnCurrentThread(), FlutterTaskRunnerDescription::struct_size, user_data, and FlutterTaskRunnerDescription::user_data.

Member Function Documentation

◆ GetFlutterTaskRunnerDescription()

const FlutterTaskRunnerDescription & flutter::testing::EmbedderTestTaskRunner::GetFlutterTaskRunnerDescription ( )
inline

Definition at line 156 of file embedder_unittests_util.h.

156 {
157 return task_runner_description_;
158 }

Referenced by flutter::testing::TEST_F(), and flutter::testing::TEST_F().


The documentation for this class was generated from the following files: