Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Member Functions | List of all members
flutter::HeadlessEventLoop Class Reference

#include <headless_event_loop.h>

Inheritance diagram for flutter::HeadlessEventLoop:
flutter::EventLoop

Public Types

using TaskExpiredCallback = std::function< void(const FlutterTask *)>
 
- Public Types inherited from flutter::EventLoop
using TaskExpiredCallback = std::function< void(const FlutterTask *)>
 

Public Member Functions

 HeadlessEventLoop (std::thread::id main_thread_id, const TaskExpiredCallback &on_task_expired)
 
 ~HeadlessEventLoop ()
 
 HeadlessEventLoop (const HeadlessEventLoop &)=delete
 
HeadlessEventLoopoperator= (const HeadlessEventLoop &)=delete
 
- Public Member Functions inherited from flutter::EventLoop
 EventLoop (std::thread::id main_thread_id, const TaskExpiredCallback &on_task_expired)
 
virtual ~EventLoop ()
 
 EventLoop (const EventLoop &)=delete
 
EventLoopoperator= (const EventLoop &)=delete
 
bool RunsTasksOnCurrentThread () const
 
void WaitForEvents (std::chrono::nanoseconds max_wait=std::chrono::nanoseconds::max())
 
void PostTask (FlutterTask flutter_task, uint64_t flutter_target_time_nanos)
 

Private Member Functions

void WaitUntil (const TaskTimePoint &time) override
 
void Wake () override
 

Additional Inherited Members

- Protected Types inherited from flutter::EventLoop
using TaskTimePoint = std::chrono::steady_clock::time_point
 
- Protected Member Functions inherited from flutter::EventLoop
std::mutex & GetTaskQueueMutex ()
 
- Static Protected Member Functions inherited from flutter::EventLoop
static TaskTimePoint TimePointFromFlutterTime (uint64_t flutter_target_time_nanos)
 
- Protected Attributes inherited from flutter::EventLoop
std::thread::id main_thread_id_
 
TaskExpiredCallback on_task_expired_
 
std::mutex task_queue_mutex_
 
std::priority_queue< Task, std::deque< Task >, Task::Comparertask_queue_
 

Detailed Description

Definition at line 16 of file headless_event_loop.h.

Member Typedef Documentation

◆ TaskExpiredCallback

using flutter::HeadlessEventLoop::TaskExpiredCallback = std::function<void(const FlutterTask*)>

Definition at line 18 of file headless_event_loop.h.

Constructor & Destructor Documentation

◆ HeadlessEventLoop() [1/2]

flutter::HeadlessEventLoop::HeadlessEventLoop ( std::thread::id  main_thread_id,
const TaskExpiredCallback on_task_expired 
)

Definition at line 12 of file headless_event_loop.cc.

14 : EventLoop(main_thread_id, on_task_expired) {}
EventLoop(std::thread::id main_thread_id, const TaskExpiredCallback &on_task_expired)
Definition event_loop.cc:12

◆ ~HeadlessEventLoop()

flutter::HeadlessEventLoop::~HeadlessEventLoop ( )
default

◆ HeadlessEventLoop() [2/2]

flutter::HeadlessEventLoop::HeadlessEventLoop ( const HeadlessEventLoop )
delete

Member Function Documentation

◆ operator=()

HeadlessEventLoop & flutter::HeadlessEventLoop::operator= ( const HeadlessEventLoop )
delete

◆ WaitUntil()

void flutter::HeadlessEventLoop::WaitUntil ( const TaskTimePoint time)
overrideprivatevirtual

Implements flutter::EventLoop.

Definition at line 18 of file headless_event_loop.cc.

18 {
19 std::mutex& mutex = GetTaskQueueMutex();
20 std::unique_lock<std::mutex> lock(mutex);
21 task_queue_condition_.wait_until(lock, time);
22}
std::mutex & GetTaskQueueMutex()
Definition event_loop.h:58

◆ Wake()

void flutter::HeadlessEventLoop::Wake ( )
overrideprivatevirtual

Implements flutter::EventLoop.

Definition at line 24 of file headless_event_loop.cc.

24 {
25 task_queue_condition_.notify_one();
26}

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