11 : messenger_(messenger) {}
18 const std::function<
void(
void)>& input_block_cb,
19 const std::function<
void(
void)>& input_unblock_cb) {
22 auto callback_iterator = callbacks_.find(
channel);
24 if (callback_iterator == callbacks_.end()) {
29 auto& callback_info = callback_iterator->second;
33 bool block_input = input_blocking_channels_.count(
channel) > 0;
37 message_callback(messenger_, &
message, callback_info.second);
56 input_blocking_channels_.insert(
channel);
void HandleMessage(const FlutterDesktopMessage &message, const std::function< void(void)> &input_block_cb=[] {}, const std::function< void(void)> &input_unblock_cb=[] {})
IncomingMessageDispatcher(FlutterDesktopMessengerRef messenger)
void EnableInputBlockingForChannel(const std::string &channel)
void SetMessageCallback(const std::string &channel, FlutterDesktopMessageCallback callback, void *user_data)
virtual ~IncomingMessageDispatcher()
G_BEGIN_DECLS GBytes * message
void(* FlutterDesktopMessageCallback)(FlutterDesktopMessengerRef, const FlutterDesktopMessage *, void *)
FlutterDesktopBinaryReply callback
void FlutterDesktopMessengerSendResponse(FlutterDesktopMessengerRef messenger, const FlutterDesktopMessageResponseHandle *handle, const uint8_t *data, size_t data_length)