Flutter Windows Embedder
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 22 of file flutter_messenger.h.

◆ FlutterDesktopMessengerRef

typedef struct FlutterDesktopMessenger* FlutterDesktopMessengerRef

Definition at line 19 of file flutter_messenger.h.

Function Documentation

◆ FlutterDesktopMessengerAddRef()

◆ FlutterDesktopMessengerIsAvailable()

◆ FlutterDesktopMessengerLock()

FLUTTER_EXPORT FlutterDesktopMessengerRef FlutterDesktopMessengerLock ( FlutterDesktopMessengerRef  messenger)

Definition at line 412 of file flutter_windows.cc.

413  {
415  return messenger;
416 }

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

◆ FlutterDesktopMessengerRelease()

FLUTTER_EXPORT void FlutterDesktopMessengerRelease ( FlutterDesktopMessengerRef  messenger)

◆ FlutterDesktopMessengerSend()

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

Definition at line 362 of file flutter_windows.cc.

365  {
366  return FlutterDesktopMessengerSendWithReply(messenger, channel, message,
367  message_size, nullptr, nullptr);
368 }

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

374  {
375  FML_DCHECK(FlutterDesktopMessengerIsAvailable(messenger))
376  << "Messenger must reference a running engine to send a response";
377 
379  ->GetEngine()
380  ->SendPlatformMessageResponse(handle, data, data_length);
381 }

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

353  {
354  FML_DCHECK(FlutterDesktopMessengerIsAvailable(messenger))
355  << "Messenger must reference a running engine to send a message";
356 
358  ->GetEngine()
359  ->SendPlatformMessage(channel, message, message_size, reply, user_data);
360 }

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 
)

◆ FlutterDesktopMessengerUnlock()

FLUTTER_EXPORT void FlutterDesktopMessengerUnlock ( FlutterDesktopMessengerRef  messenger)
user_data
void * user_data
Definition: flutter_windows_view_unittests.cc:53
flutter::FlutterDesktopMessenger::ToRef
FlutterDesktopMessengerRef ToRef()
Convert to FlutterDesktopMessengerRef.
Definition: flutter_desktop_messenger.h:28
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:699
flutter::FlutterDesktopMessenger::GetMutex
std::mutex & GetMutex()
Definition: flutter_desktop_messenger.h:70
flutter::FlutterDesktopMessenger::Release
void Release()
Definition: flutter_desktop_messenger.h:59
flutter::FlutterWindowsEngine::SendPlatformMessageResponse
void SendPlatformMessageResponse(const FlutterDesktopMessageResponseHandle *handle, const uint8_t *data, size_t data_length)
Definition: flutter_windows_engine.cc:733
flutter::FlutterDesktopMessenger::GetEngine
flutter::FlutterWindowsEngine * GetEngine() const
Getter for the engine field.
Definition: flutter_desktop_messenger.h:38
flutter::IncomingMessageDispatcher::SetMessageCallback
void SetMessageCallback(const std::string &channel, FlutterDesktopMessageCallback callback, void *user_data)
Definition: incoming_message_dispatcher.cc:43
flutter::FlutterWindowsEngine::message_dispatcher
IncomingMessageDispatcher * message_dispatcher()
Definition: flutter_windows_engine.h:151
flutter::FlutterDesktopMessenger::AddRef
FlutterDesktopMessenger * AddRef()
Definition: flutter_desktop_messenger.h:50
FlutterDesktopMessengerIsAvailable
bool FlutterDesktopMessengerIsAvailable(FlutterDesktopMessengerRef messenger)
Definition: flutter_windows.cc:407
message
Win32Message message
Definition: keyboard_unittests.cc:137
flutter::FlutterDesktopMessenger::FromRef
static FlutterDesktopMessenger * FromRef(FlutterDesktopMessengerRef ref)
Convert from FlutterDesktopMessengerRef.
Definition: flutter_desktop_messenger.h:33
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
callback
FlutterDesktopBinaryReply callback
Definition: flutter_windows_view_unittests.cc:52