| Flutter Windows Embedder |

Classes | Typedefs | Functions
flutter_messenger.h File Reference
`#include <stdbool.h>`
`#include <stddef.h>`
`#include <stdint.h>`
`#include "flutter_export.h"`

Go to the source code of this file.

## Classes
struct | FlutterDesktopMessage

## Typedefs
typedef struct FlutterDesktopMessenger * | FlutterDesktopMessengerRef
typedef struct _FlutterPlatformMessageResponseHandle | FlutterDesktopMessageResponseHandle
typedef void(* | FlutterDesktopBinaryReply) (const uint8_t *data, size_t data_size, void *user_data)
typedef void(* | FlutterDesktopMessageCallback) (FlutterDesktopMessengerRef, const FlutterDesktopMessage *, void *)

## Functions
FLUTTER_EXPORT bool | FlutterDesktopMessengerSend (FlutterDesktopMessengerRef messenger, const char *channel, const uint8_t *message, const size_t message_size)
FLUTTER_EXPORT bool | FlutterDesktopMessengerSendWithReply (FlutterDesktopMessengerRef messenger, const char *channel, const uint8_t *message, const size_t message_size, const FlutterDesktopBinaryReply reply, void *user_data)
FLUTTER_EXPORT void | FlutterDesktopMessengerSendResponse (FlutterDesktopMessengerRef messenger, const FlutterDesktopMessageResponseHandle *handle, const uint8_t *data, size_t data_length)
FLUTTER_EXPORT void | FlutterDesktopMessengerSetCallback (FlutterDesktopMessengerRef messenger, const char *channel, FlutterDesktopMessageCallback callback, void *user_data)
FLUTTER_EXPORT FlutterDesktopMessengerRef | FlutterDesktopMessengerAddRef (FlutterDesktopMessengerRef messenger)
FLUTTER_EXPORT void | FlutterDesktopMessengerRelease (FlutterDesktopMessengerRef messenger)
FLUTTER_EXPORT bool | FlutterDesktopMessengerIsAvailable (FlutterDesktopMessengerRef messenger)
FLUTTER_EXPORT FlutterDesktopMessengerRef | FlutterDesktopMessengerLock (FlutterDesktopMessengerRef messenger)
FLUTTER_EXPORT void | FlutterDesktopMessengerUnlock (FlutterDesktopMessengerRef messenger)

## Typedef Documentation

## ◆ FlutterDesktopBinaryReply

typedef void(* FlutterDesktopBinaryReply) (const uint8_t *data, size_t data_size, void *user_data)

Definition at line 26 of file flutter_messenger.h.

## ◆ FlutterDesktopMessageCallback

typedef void(* FlutterDesktopMessageCallback) (FlutterDesktopMessengerRef, const FlutterDesktopMessage *, void *)

Definition at line 49 of file flutter_messenger.h.

## ◆ FlutterDesktopMessageResponseHandle

typedef struct _FlutterPlatformMessageResponseHandle FlutterDesktopMessageResponseHandle

Definition at line 19 of file flutter_messenger.h.

## ◆ FlutterDesktopMessengerRef

typedef struct FlutterDesktopMessenger* FlutterDesktopMessengerRef

Definition at line 19 of file flutter_messenger.h.

## Function Documentation

## ◆ FlutterDesktopMessengerAddRef()

FLUTTER_EXPORT FlutterDesktopMessengerRef FlutterDesktopMessengerAddRef | ( | FlutterDesktopMessengerRef | messenger | ) |

Definition at line 403 of file flutter_windows.cc.

404 {
405 return flutter::FlutterDesktopMessenger::FromRef(messenger)
406 ->AddRef()
407 ->ToRef();
408 }
flutter::FlutterDesktopMessenger::ToRef
FlutterDesktopMessengerRef ToRef()
Convert to FlutterDesktopMessengerRef.
Definition: flutter_desktop_messenger.h:28
flutter::FlutterDesktopMessenger::FromRef
static FlutterDesktopMessenger * FromRef(FlutterDesktopMessengerRef ref)
Convert from FlutterDesktopMessengerRef.
Definition: flutter_desktop_messenger.h:33
flutter::FlutterDesktopMessenger::AddRef
FlutterDesktopMessenger * AddRef()
Definition: flutter_desktop_messenger.h:50

References flutter::FlutterDesktopMessenger::AddRef(), flutter::FlutterDesktopMessenger::FromRef(), and flutter::FlutterDesktopMessenger::ToRef().

## ◆ FlutterDesktopMessengerIsAvailable()

FLUTTER_EXPORT bool FlutterDesktopMessengerIsAvailable | ( | FlutterDesktopMessengerRef | messenger | ) |

Definition at line 414 of file flutter_windows.cc.

414 {
415 return flutter::FlutterDesktopMessenger::FromRef(messenger)->GetEngine() !=
416 nullptr;
417 }
flutter::FlutterDesktopMessenger::GetEngine
flutter::FlutterWindowsEngine * GetEngine() const
Getter for the engine field.
Definition: flutter_desktop_messenger.h:38

References flutter::FlutterDesktopMessenger::FromRef(), and flutter::FlutterDesktopMessenger::GetEngine().

Referenced by FlutterDesktopMessengerSendResponse(), FlutterDesktopMessengerSendWithReply(), and FlutterDesktopMessengerSetCallback().

## ◆ FlutterDesktopMessengerLock()

FLUTTER_EXPORT FlutterDesktopMessengerRef FlutterDesktopMessengerLock | ( | FlutterDesktopMessengerRef | messenger | ) |

Definition at line 419 of file flutter_windows.cc.

420 {
421 flutter::FlutterDesktopMessenger::FromRef(messenger)->GetMutex().lock();
422 return messenger;
423 }
flutter::FlutterDesktopMessenger::GetMutex
std::mutex & GetMutex()
Definition: flutter_desktop_messenger.h:70

References flutter::FlutterDesktopMessenger::FromRef(), and flutter::FlutterDesktopMessenger::GetMutex().

## ◆ FlutterDesktopMessengerRelease()

FLUTTER_EXPORT void FlutterDesktopMessengerRelease | ( | FlutterDesktopMessengerRef | messenger | ) |

Definition at line 410 of file flutter_windows.cc.

410 {
411 flutter::FlutterDesktopMessenger::FromRef(messenger)->Release();
412 }
flutter::FlutterDesktopMessenger::Release
void Release()
Definition: flutter_desktop_messenger.h:59

References flutter::FlutterDesktopMessenger::FromRef(), and flutter::FlutterDesktopMessenger::Release().

## ◆ FlutterDesktopMessengerSend()

FLUTTER_EXPORT bool FlutterDesktopMessengerSend | ( | FlutterDesktopMessengerRef | messenger,
|  | const char * | channel,
|  | const uint8_t * | message,
|  | const size_t | message_size
| ) |  |

Definition at line 369 of file flutter_windows.cc.

372 {
373 return FlutterDesktopMessengerSendWithReply(messenger, channel, message,
374 message_size, nullptr, nullptr);
375 }
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:355
message
Win32Message message
Definition: keyboard_unittests.cc:137

References FlutterDesktopMessengerSendWithReply(), and message.

Referenced by flutter::BinaryMessengerImpl::Send().

## ◆ FlutterDesktopMessengerSendResponse()

FLUTTER_EXPORT void FlutterDesktopMessengerSendResponse | ( | FlutterDesktopMessengerRef | messenger,
|  | const FlutterDesktopMessageResponseHandle * | handle,
|  | const uint8_t * | data,
|  | size_t | data_length
| ) |  |

Definition at line 377 of file flutter_windows.cc.

381 {
382 FML_DCHECK(FlutterDesktopMessengerIsAvailable(messenger))
383 << "Messenger must reference a running engine to send a response";
384
385 flutter::FlutterDesktopMessenger::FromRef(messenger)
386 ->GetEngine()
387 ->SendPlatformMessageResponse(handle, data, data_length);
388 }
flutter::FlutterWindowsEngine::SendPlatformMessageResponse
void SendPlatformMessageResponse(const FlutterDesktopMessageResponseHandle *handle, const uint8_t *data, size_t data_length)
Definition: flutter_windows_engine.cc:785
FlutterDesktopMessengerIsAvailable
bool FlutterDesktopMessengerIsAvailable(FlutterDesktopMessengerRef messenger)
Definition: flutter_windows.cc:414

References FlutterDesktopMessengerIsAvailable(), flutter::FlutterDesktopMessenger::FromRef(), flutter::FlutterDesktopMessenger::GetEngine(), and flutter::FlutterWindowsEngine::SendPlatformMessageResponse().

Referenced by flutter::IncomingMessageDispatcher::HandleMessage().

## ◆ FlutterDesktopMessengerSendWithReply()

FLUTTER_EXPORT bool FlutterDesktopMessengerSendWithReply | ( | FlutterDesktopMessengerRef | messenger,
|  | const char * | channel,
|  | const uint8_t * | message,
|  | const size_t | message_size,
|  | const FlutterDesktopBinaryReply | reply,
|  | void * | user_data
| ) |  |

Definition at line 355 of file flutter_windows.cc.

360 {
361 FML_DCHECK(FlutterDesktopMessengerIsAvailable(messenger))
362 << "Messenger must reference a running engine to send a message";
363
364 return flutter::FlutterDesktopMessenger::FromRef(messenger)
365 ->GetEngine()
366 ->SendPlatformMessage(channel, message, message_size, reply, user_data);
367 }
flutter::FlutterWindowsEngine::SendPlatformMessage
bool SendPlatformMessage(const char *channel, const uint8_t *message, const size_t message_size, const FlutterDesktopBinaryReply reply, void *user_data)
Definition: flutter_windows_engine.cc:751
user_data
void * user_data
Definition: flutter_windows_view_unittests.cc:53

References FlutterDesktopMessengerIsAvailable(), flutter::FlutterDesktopMessenger::FromRef(), flutter::FlutterDesktopMessenger::GetEngine(), message, flutter::FlutterWindowsEngine::SendPlatformMessage(), and user_data.

Referenced by FlutterDesktopMessengerSend(), and flutter::BinaryMessengerImpl::Send().

## ◆ FlutterDesktopMessengerSetCallback()

FLUTTER_EXPORT void FlutterDesktopMessengerSetCallback | ( | FlutterDesktopMessengerRef | messenger,
|  | const char * | channel,
|  | FlutterDesktopMessageCallback | callback,
|  | void * | user_data
| ) |  |

Definition at line 390 of file flutter_windows.cc.

393 {
394 FML_DCHECK(FlutterDesktopMessengerIsAvailable(messenger))
395 << "Messenger must reference a running engine to set a callback";
396
397 flutter::FlutterDesktopMessenger::FromRef(messenger)
398 ->GetEngine()
399 ->message_dispatcher()
400 ->SetMessageCallback(channel, callback, user_data);
401 }
flutter::FlutterWindowsEngine::message_dispatcher
IncomingMessageDispatcher * message_dispatcher()
Definition: flutter_windows_engine.h:162
flutter::IncomingMessageDispatcher::SetMessageCallback
void SetMessageCallback(const std::string &channel, FlutterDesktopMessageCallback callback, void *user_data)
Definition: incoming_message_dispatcher.cc:43
callback
FlutterDesktopBinaryReply callback
Definition: flutter_windows_view_unittests.cc:52

References callback, FlutterDesktopMessengerIsAvailable(), flutter::FlutterDesktopMessenger::FromRef(), flutter::FlutterDesktopMessenger::GetEngine(), flutter::FlutterWindowsEngine::message_dispatcher(), flutter::IncomingMessageDispatcher::SetMessageCallback(), and user_data.

Referenced by flutter::BinaryMessengerImpl::SetMessageHandler().

## ◆ FlutterDesktopMessengerUnlock()

FLUTTER_EXPORT void FlutterDesktopMessengerUnlock | ( | FlutterDesktopMessengerRef | messenger | ) |

Definition at line 425 of file flutter_windows.cc.

425 {
426 flutter::FlutterDesktopMessenger::FromRef(messenger)->GetMutex().unlock();
427 }

References flutter::FlutterDesktopMessenger::FromRef(), and flutter::FlutterDesktopMessenger::GetMutex().