#import <platform_message_handler_ios.h>
◆ PlatformMessageHandlerIos
- PlatformMessageHandlerIos: |
|
(fml::RefPtr< fml::TaskRunner >) |
platform_task_runner |
|
◆ DoesHandlePlatformMessageOnPlatformThread
- (bool) PlatformMessageHandlerIos: |
|
|
const |
◆ HandlePlatformMessage
- (void) PlatformMessageHandlerIos: |
|
(std::unique_ptr< PlatformMessage >) |
message |
|
Definition at line 47 of file platform_message_handler_ios.mm.
50 fml::RefPtr<flutter::PlatformMessageResponse> completer = message->response();
51 HandlerInfo handler_info;
56 std::lock_guard lock(message_handlers_mutex_);
57 auto it = message_handlers_.find(message->channel());
58 if (it != message_handlers_.end()) {
59 handler_info = it->second;
62 if (handler_info.handler) {
65 if (message->hasData()) {
70 TRACE_EVENT_ASYNC_BEGIN1(
"flutter",
"PlatformChannel ScheduleHandler", platform_message_id,
71 "channel", message->channel().c_str());
72 dispatch_block_t run_handler = ^{
73 handler(data, ^(NSData* reply) {
74 TRACE_EVENT_ASYNC_END0(
"flutter",
"PlatformChannel ScheduleHandler", platform_message_id);
80 completer->CompleteEmpty();
86 if (handler_info.task_queue.get()) {
87 [handler_info.task_queue.get() dispatch:run_handler];
89 dispatch_async(dispatch_get_main_queue(), run_handler);
93 completer->CompleteEmpty();
References flutter::ConvertMappingToNSData(), flutter::ConvertNSDataToMappingPtr(), flutter::PlatformMessageHandlerIos::HandlerInfo::handler, platform_message_counter, and flutter::PlatformMessageHandlerIos::HandlerInfo::task_queue.
◆ InvokePlatformMessageEmptyResponseCallback
- (void) PlatformMessageHandlerIos: |
|
(int) |
response_id |
|
◆ InvokePlatformMessageResponseCallback
- (void) PlatformMessageHandlerIos: |
|
(int) |
response_id |
|
|
(std::unique_ptr< fml::Mapping >) |
mapping |
|
|
| |
◆ MakeBackgroundTaskQueue
◆ SetMessageHandler
TODO(gaaclarke): This should be migrated to a lockfree datastructure.
Definition at line 117 of file platform_message_handler_ios.mm.
120 FML_CHECK(platform_task_runner_->RunsTasksOnCurrentThread());
122 std::lock_guard lock(message_handlers_mutex_);
123 message_handlers_.erase(channel);
125 message_handlers_[channel] = {
126 .task_queue = fml::scoped_nsprotocol([task_queue retain]),
128 fml::ScopedBlock<FlutterBinaryMessageHandler>{handler, fml::OwnershipPolicy::kRetain},
The documentation for this class was generated from the following files: