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

#include <binary_messenger_impl.h>

Inheritance diagram for flutter::BinaryMessengerImpl:
flutter::BinaryMessenger

Public Member Functions

 BinaryMessengerImpl (FlutterDesktopMessengerRef core_messenger)
 
virtual ~BinaryMessengerImpl ()
 
 BinaryMessengerImpl (BinaryMessengerImpl const &)=delete
 
BinaryMessengerImploperator= (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 };
109 messenger_, channel.c_str(), message, message_size, message_reply,
110 captures);
111 if (!result) {
112 delete captures;
113 }
114}
GAsyncResult * result
Win32Message message
std::function< void(const uint8_t *reply, size_t reply_size)> BinaryReply
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot data
Definition switches.h:41
bool FlutterDesktopMessengerSendWithReply(FlutterDesktopMessengerRef messenger, const char *channel, const uint8_t *message, const size_t message_size, const FlutterDesktopBinaryReply reply, void *user_data)
bool FlutterDesktopMessengerSend(FlutterDesktopMessengerRef messenger, const char *channel, const uint8_t *message, const size_t message_size)

◆ 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}
std::function< void(const uint8_t *message, size_t message_size, BinaryReply reply)> BinaryMessageHandler
void FlutterDesktopMessengerSetCallback(FlutterDesktopMessengerRef messenger, const char *channel, FlutterDesktopMessageCallback callback, void *user_data)

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