Flutter Engine
flutter::PlatformConfigurationClient Class Referenceabstract

A client interface that the RuntimeController uses to define handlers for PlatformConfiguration requests. More...

#include <platform_configuration.h>

Inheritance diagram for flutter::PlatformConfigurationClient:
flutter::RuntimeController flutter::testing::DummyPlatformConfigurationClient

Public Member Functions

virtual std::string DefaultRouteName ()=0
 The route or path that the embedder requested when the application was launched. More...
 
virtual void ScheduleFrame ()=0
 Requests that, at the next appropriate opportunity, a new frame be scheduled for rendering. More...
 
virtual void Render (Scene *scene)=0
 Updates the client's rendering on the GPU with the newly provided Scene. More...
 
virtual void UpdateSemantics (SemanticsUpdate *update)=0
 Receives a updated semantics tree from the Framework. More...
 
virtual void HandlePlatformMessage (fml::RefPtr< PlatformMessage > message)=0
 When the Flutter application has a message to send to the underlying platform, the message needs to be forwarded to the platform on the appropriate thread (via the platform task runner). The PlatformConfiguration delegates this task to the engine via this method. More...
 
virtual FontCollectionGetFontCollection ()=0
 Returns the current collection of fonts available on the platform. More...
 
virtual void UpdateIsolateDescription (const std::string isolate_name, int64_t isolate_port)=0
 Notifies this client of the name of the root isolate and its port when that isolate is launched, restarted (in the cold-restart scenario) or the application itself updates the name of the root isolate (via Window.setIsolateDebugName in window.dart). The name of the isolate is meaningless to the engine but is used in instrumentation and tooling. Currently, this information is to update the service protocol list of available root isolates running in the VM and their names so that the appropriate isolate can be selected in the tools for debugging and instrumentation. More...
 
virtual void SetNeedsReportTimings (bool value)=0
 Notifies this client that the application has an opinion about whether its frame timings need to be reported backed to it. Due to the asynchronous nature of rendering in Flutter, it is not possible for the application to determine the total time it took to render a specific frame. While the layer-tree is constructed on the UI thread, it needs to be rendering on the raster thread. Dart code cannot execute on this thread. So any instrumentation about the frame times gathered on this thread needs to be aggregated and sent back to the UI thread for processing in Dart. More...
 
virtual std::shared_ptr< const fml::MappingGetPersistentIsolateData ()=0
 The embedder can specify data that the isolate can request synchronously on launch. This accessor fetches that data. More...
 
virtual std::unique_ptr< std::vector< std::string > > ComputePlatformResolvedLocale (const std::vector< std::string > &supported_locale_data)=0
 Directly invokes platform-specific APIs to compute the locale the platform would have natively resolved to. More...
 

Protected Member Functions

virtual ~PlatformConfigurationClient ()
 

Detailed Description

A client interface that the RuntimeController uses to define handlers for PlatformConfiguration requests.

See also
PlatformConfiguration

Definition at line 45 of file platform_configuration.h.

Constructor & Destructor Documentation

◆ ~PlatformConfigurationClient()

flutter::PlatformConfigurationClient::~PlatformConfigurationClient ( )
protectedvirtual

Definition at line 190 of file platform_configuration.cc.

190 {}

Member Function Documentation

◆ ComputePlatformResolvedLocale()

virtual std::unique_ptr<std::vector<std::string> > flutter::PlatformConfigurationClient::ComputePlatformResolvedLocale ( const std::vector< std::string > &  supported_locale_data)
pure virtual

Directly invokes platform-specific APIs to compute the locale the platform would have natively resolved to.

Parameters
[in]supported_locale_dataThe vector of strings that represents the locales supported by the app. Each locale consists of three strings: languageCode, countryCode, and scriptCode in that order.
Returns
A vector of 3 strings languageCode, countryCode, and scriptCode that represents the locale selected by the platform. Empty strings mean the value was unassigned. Empty vector represents a null locale.

Implemented in flutter::testing::DummyPlatformConfigurationClient.

Referenced by flutter::ComputePlatformResolvedLocale().

◆ DefaultRouteName()

virtual std::string flutter::PlatformConfigurationClient::DefaultRouteName ( )
pure virtual

The route or path that the embedder requested when the application was launched.

This will be the string "`/`" if no particular route was requested.

Implemented in flutter::testing::DummyPlatformConfigurationClient.

◆ GetFontCollection()

virtual FontCollection& flutter::PlatformConfigurationClient::GetFontCollection ( )
pure virtual

Returns the current collection of fonts available on the platform.

This function reads an XML file and makes font families and collections of them. MinikinFontForTest is used for FontFamily creation.

Implemented in flutter::testing::DummyPlatformConfigurationClient.

Referenced by flutter::decodeStrut().

◆ GetPersistentIsolateData()

virtual std::shared_ptr<const fml::Mapping> flutter::PlatformConfigurationClient::GetPersistentIsolateData ( )
pure virtual

The embedder can specify data that the isolate can request synchronously on launch. This accessor fetches that data.

This data is persistent for the duration of the Flutter application and is available even after isolate restarts. Because of this lifecycle, the size of this data must be kept to a minimum.

For asynchronous communication between the embedder and isolate, a platform channel may be used.

Returns
A map of the isolate data that the framework can request upon launch.

Implemented in flutter::testing::DummyPlatformConfigurationClient.

◆ HandlePlatformMessage()

virtual void flutter::PlatformConfigurationClient::HandlePlatformMessage ( fml::RefPtr< PlatformMessage message)
pure virtual

When the Flutter application has a message to send to the underlying platform, the message needs to be forwarded to the platform on the appropriate thread (via the platform task runner). The PlatformConfiguration delegates this task to the engine via this method.

See also
PlatformView::HandlePlatformMessage
Parameters
[in]messageThe message from the Flutter application to send to the underlying platform.

Implemented in flutter::testing::DummyPlatformConfigurationClient.

◆ Render()

virtual void flutter::PlatformConfigurationClient::Render ( Scene scene)
pure virtual

Updates the client's rendering on the GPU with the newly provided Scene.

Implemented in flutter::testing::DummyPlatformConfigurationClient.

◆ ScheduleFrame()

virtual void flutter::PlatformConfigurationClient::ScheduleFrame ( )
pure virtual

Requests that, at the next appropriate opportunity, a new frame be scheduled for rendering.

Implemented in flutter::testing::DummyPlatformConfigurationClient.

◆ SetNeedsReportTimings()

virtual void flutter::PlatformConfigurationClient::SetNeedsReportTimings ( bool  value)
pure virtual

Notifies this client that the application has an opinion about whether its frame timings need to be reported backed to it. Due to the asynchronous nature of rendering in Flutter, it is not possible for the application to determine the total time it took to render a specific frame. While the layer-tree is constructed on the UI thread, it needs to be rendering on the raster thread. Dart code cannot execute on this thread. So any instrumentation about the frame times gathered on this thread needs to be aggregated and sent back to the UI thread for processing in Dart.

When the application indicates that frame times need to be reported, it collects this information till a specified number of data points are gathered. Then this information is sent back to Dart code via Engine::ReportTimings.

This option is engine counterpart of the Window._setNeedsReportTimings in window.dart.

Parameters
[in]needs_reportingIf reporting information should be collected and send back to Dart.

Implemented in flutter::testing::DummyPlatformConfigurationClient.

◆ UpdateIsolateDescription()

virtual void flutter::PlatformConfigurationClient::UpdateIsolateDescription ( const std::string  isolate_name,
int64_t  isolate_port 
)
pure virtual

Notifies this client of the name of the root isolate and its port when that isolate is launched, restarted (in the cold-restart scenario) or the application itself updates the name of the root isolate (via Window.setIsolateDebugName in window.dart). The name of the isolate is meaningless to the engine but is used in instrumentation and tooling. Currently, this information is to update the service protocol list of available root isolates running in the VM and their names so that the appropriate isolate can be selected in the tools for debugging and instrumentation.

Parameters
[in]isolate_nameThe isolate name
[in]isolate_portThe isolate port

Implemented in flutter::testing::DummyPlatformConfigurationClient.

◆ UpdateSemantics()

virtual void flutter::PlatformConfigurationClient::UpdateSemantics ( SemanticsUpdate update)
pure virtual

Receives a updated semantics tree from the Framework.

Parameters
[in]updateThe updated semantic tree to apply.

Implemented in flutter::testing::DummyPlatformConfigurationClient.


The documentation for this class was generated from the following files: