| Flutter Windows Embedder |

Public Member Functions | List of all members
flutter::BinaryMessengerImpl Class Reference

`#include <binary_messenger_impl.h>`

Inheritance diagram for flutter::BinaryMessengerImpl:

## Public Member Functions
| BinaryMessengerImpl (FlutterDesktopMessengerRef core_messenger)
virtual | ~BinaryMessengerImpl ()
| BinaryMessengerImpl (BinaryMessengerImpl const &)=delete
BinaryMessengerImpl & | operator= (BinaryMessengerImpl const &)=delete
void | Send (const std::string &channel, const uint8_t *message, size_t message_size, BinaryReply reply) const override
void | SetMessageHandler (const std::string &channel, BinaryMessageHandler handler) override
Public Member Functions inherited from flutter::BinaryMessenger
virtual | ~BinaryMessenger ()=default

## Detailed Description

Definition at line 19 of file binary_messenger_impl.h.

## Constructor & Destructor Documentation

## ◆ BinaryMessengerImpl() [1/2]

flutter::BinaryMessengerImpl::BinaryMessengerImpl | ( | FlutterDesktopMessengerRef | core_messenger | ) |
| explicit

Definition at line 81 of file core_implementations.cc.

83 : messenger_(core_messenger) {}

## ◆ ~BinaryMessengerImpl()

flutter::BinaryMessengerImpl::~BinaryMessengerImpl | ( |  | ) |
| virtualdefault

## ◆ BinaryMessengerImpl() [2/2]

flutter::BinaryMessengerImpl::BinaryMessengerImpl | ( | BinaryMessengerImpl const & |  | ) |
| delete

## Member Function Documentation

## ◆ operator=()

BinaryMessengerImpl& flutter::BinaryMessengerImpl::operator= | ( | BinaryMessengerImpl const & |  | ) |
| delete

## ◆ Send()

void flutter::BinaryMessengerImpl::Send | ( | const std::string & | channel,
|  | const uint8_t * | message,
|  | size_t | message_size,
|  | BinaryReply | reply
| ) |  | const
| overridevirtual

Implements flutter::BinaryMessenger.

Definition at line 87 of file core_implementations.cc.

90 {
91 if (reply == nullptr) {
92 FlutterDesktopMessengerSend(messenger_, channel.c_str(), message,
93 message_size);
94 return;
95 }
96 struct Captures {
97 BinaryReply reply;
98 };
99 auto captures = new Captures();
100 captures->reply = reply;
101
102 auto message_reply = [](const uint8_t* data, size_t data_size,
103 void* user_data) {
104 auto captures = reinterpret_cast<Captures*>(user_data);
105 captures->reply(data, data_size);
106 delete captures;
107 };
108 bool result = FlutterDesktopMessengerSendWithReply(
109 messenger_, channel.c_str(), message, message_size, message_reply,
110 captures);
111 if (!result) {
112 delete captures;
113 }
114 }

References FlutterDesktopMessengerSend(), FlutterDesktopMessengerSendWithReply(), message, and user_data.

## ◆ SetMessageHandler()

void flutter::BinaryMessengerImpl::SetMessageHandler | ( | const std::string & | channel,
|  | BinaryMessageHandler | handler
| ) |  |
| overridevirtual

Implements flutter::BinaryMessenger.

Definition at line 116 of file core_implementations.cc.

117 {
118 if (!handler) {
119 handlers_.erase(channel);
120 FlutterDesktopMessengerSetCallback(messenger_, channel.c_str(), nullptr,
121 nullptr);
122 return;
123 }
124 // Save the handler, to keep it alive.
125 handlers_[channel] = std::move(handler);
126 BinaryMessageHandler* message_handler = &handlers_[channel];
127 // Set an adaptor callback that will invoke the handler.
128 FlutterDesktopMessengerSetCallback(messenger_, channel.c_str(),
129 ForwardToHandler, message_handler);
130 }

References FlutterDesktopMessengerSetCallback().

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

- shell/platform/common/client_wrapper/binary_messenger_impl.h
- shell/platform/common/client_wrapper/core_implementations.cc

FlutterDesktopMessengerSend
bool FlutterDesktopMessengerSend(FlutterDesktopMessengerRef messenger, const char *channel, const uint8_t *message, const size_t message_size)
Definition: flutter_windows.cc:362
user_data
void * user_data
Definition: flutter_windows_view_unittests.cc:53
flutter::BinaryReply
std::function< void(const uint8_t *reply, size_t reply_size)> BinaryReply
Definition: binary_messenger.h:17
message
Win32Message message
Definition: keyboard_unittests.cc:137
flutter::BinaryMessageHandler
std::function< void(const uint8_t *message, size_t message_size, BinaryReply reply)> BinaryMessageHandler
Definition: binary_messenger.h:24
FlutterDesktopMessengerSetCallback
void FlutterDesktopMessengerSetCallback(FlutterDesktopMessengerRef messenger, const char *channel, FlutterDesktopMessageCallback callback, void *user_data)
Definition: flutter_windows.cc:383
FlutterDesktopMessengerSendWithReply
bool FlutterDesktopMessengerSendWithReply(FlutterDesktopMessengerRef messenger, const char *channel, const uint8_t *message, const size_t message_size, const FlutterDesktopBinaryReply reply, void *user_data)
Definition: flutter_windows.cc:348