| 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 402 of file flutter_windows.cc.

403 {
404 return flutter::FlutterDesktopMessenger::FromRef(messenger)
405 ->AddRef()
406 ->ToRef();
407 }
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 413 of file flutter_windows.cc.

413 {
414 return flutter::FlutterDesktopMessenger::FromRef(messenger)->GetEngine() !=
415 nullptr;
416 }
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 418 of file flutter_windows.cc.

419 {
420 flutter::FlutterDesktopMessenger::FromRef(messenger)->GetMutex().lock();
421 return messenger;
422 }
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 409 of file flutter_windows.cc.

409 {
410 flutter::FlutterDesktopMessenger::FromRef(messenger)->Release();
411 }
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 368 of file flutter_windows.cc.

371 {
372 return FlutterDesktopMessengerSendWithReply(messenger, channel, message,
373 message_size, nullptr, nullptr);
374 }
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:354
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 376 of file flutter_windows.cc.

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

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 354 of file flutter_windows.cc.

359 {
360 FML_DCHECK(FlutterDesktopMessengerIsAvailable(messenger))
361 << "Messenger must reference a running engine to send a message";
362
363 return flutter::FlutterDesktopMessenger::FromRef(messenger)
364 ->GetEngine()
365 ->SendPlatformMessage(channel, message, message_size, reply, user_data);
366 }
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:724
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 389 of file flutter_windows.cc.

392 {
393 FML_DCHECK(FlutterDesktopMessengerIsAvailable(messenger))
394 << "Messenger must reference a running engine to set a callback";
395
396 flutter::FlutterDesktopMessenger::FromRef(messenger)
397 ->GetEngine()
398 ->message_dispatcher()
399 ->SetMessageCallback(channel, callback, user_data);
400 }
flutter::FlutterWindowsEngine::message_dispatcher
IncomingMessageDispatcher * message_dispatcher()
Definition: flutter_windows_engine.h:157
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 424 of file flutter_windows.cc.

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

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