5#ifndef FLUTTER_RUNTIME_SERVICE_PROTOCOL_H_
6#define FLUTTER_RUNTIME_SERVICE_PROTOCOL_H_
10#include <shared_mutex>
17#include "rapidjson/document.h"
42 Description(int64_t p_isolate_port, std::string p_isolate_name)
47 rapidjson::Value& value,
48 rapidjson::MemoryPoolAllocator<>&
allocator)
const;
54 std::string_view method)
const = 0;
59 std::string_view method,
61 rapidjson::Document* response) = 0;
78 const std::set<std::string_view> endpoints_;
79 mutable std::shared_mutex handlers_mutex_;
80 std::map<Handler*, fml::AtomicObject<Handler::Description>> handlers_;
82 [[nodiscard]]
static bool HandleMessage(
const char* method,
83 const char** param_keys,
84 const char** param_values,
87 const char** json_object);
88 [[nodiscard]]
static bool HandleMessage(
89 std::string_view method,
92 rapidjson::Document* response);
93 [[nodiscard]]
bool HandleMessage(std::string_view method,
95 rapidjson::Document* response)
const;
97 [[nodiscard]]
bool HandleListViewsMethod(rapidjson::Document* response)
const;
virtual bool HandleServiceProtocolMessage(std::string_view method, const ServiceProtocolMap ¶ms, rapidjson::Document *response)=0
std::map< std::string_view, std::string_view > ServiceProtocolMap
virtual fml::RefPtr< fml::TaskRunner > GetServiceProtocolHandlerTaskRunner(std::string_view method) const =0
virtual Description GetServiceProtocolDescription() const =0
static const std::string_view kGetPipelineUsageExtensionName
void AddHandler(Handler *handler, const Handler::Description &description)
static const std::string_view kSetAssetBundlePathExtensionName
static const std::string_view kReloadAssetFonts
static const std::string_view kScreenshotSkpExtensionName
static const std::string_view kScreenshotExtensionName
static const std::string_view kGetDisplayRefreshRateExtensionName
static const std::string_view kRunInViewExtensionName
static const std::string_view kEstimateRasterCacheMemoryExtensionName
static const std::string_view kGetSkSLsExtensionName
void RemoveHandler(Handler *handler)
void SetHandlerDescription(Handler *handler, const Handler::Description &description)
static const std::string_view kFlushUIThreadTasksExtensionName
void ToggleHooks(bool set)
const EmbeddedViewParams * params
const gchar FlBinaryMessengerMessageHandler handler
#define FML_DISALLOW_COPY_AND_ASSIGN(TypeName)
std::shared_ptr< ImpellerAllocator > allocator
Description(int64_t p_isolate_port, std::string p_isolate_name)