Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
flutter_project_bundle.h
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_PROJECT_BUNDLE_H_
6#define FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_PROJECT_BUNDLE_H_
7
8#include <filesystem>
9#include <string>
10#include <vector>
11
14
15namespace flutter {
16
18 std::unique_ptr<_FlutterEngineAOTData, FlutterEngineCollectAOTDataFnPtr>;
19
25
31
32// The data associated with a Flutter project needed to run it in an engine.
34 public:
35 // Creates a new project bundle from the given properties.
36 //
37 // Treats any relative paths as relative to the directory of this executable.
38 explicit FlutterProjectBundle(
39 const FlutterDesktopEngineProperties& properties);
40
42
43 // Whether or not the bundle is valid. This does not check that the paths
44 // exist, or contain valid data, just that paths were able to be constructed.
45 bool HasValidPaths();
46
47 // Returns the path to the assets directory.
48 const std::filesystem::path& assets_path() { return assets_path_; }
49
50 // Returns the path to the ICU data file.
51 const std::filesystem::path& icu_path() { return icu_path_; }
52
53 // Returns any switches that should be passed to the engine.
54 const std::vector<std::string> GetSwitches();
55
56 // Sets engine switches.
57 void SetSwitches(const std::vector<std::string>& switches);
58
59 // Attempts to load AOT data for this bundle. The returned data must be
60 // retained until any engine instance it is passed to has been shut down.
61 //
62 // Logs and returns nullptr on failure.
64
65 // Returns the Dart entrypoint.
66 const std::string& dart_entrypoint() const { return dart_entrypoint_; }
67
68 // Returns the command line arguments to be passed through to the Dart
69 // entrypoint.
70 const std::vector<std::string>& dart_entrypoint_arguments() const {
71 return dart_entrypoint_arguments_;
72 }
73
74 // Returns the app's GPU preference.
75 FlutterGpuPreference gpu_preference() const { return gpu_preference_; }
76
77 // Returns thread policy for running the UI isolate.
78 FlutterUIThreadPolicy ui_thread_policy() { return ui_thread_policy_; }
79
80 private:
81 std::filesystem::path assets_path_;
82 std::filesystem::path icu_path_;
83
84 // Path to the AOT library file, if any.
85 std::filesystem::path aot_library_path_;
86
87 // The Dart entrypoint to launch.
88 std::string dart_entrypoint_;
89
90 // Dart entrypoint arguments.
91 std::vector<std::string> dart_entrypoint_arguments_;
92
93 // Engine switches.
94 std::vector<std::string> engine_switches_;
95
96 // App's GPU preference.
97 FlutterGpuPreference gpu_preference_;
98
99 // Thread policy for running the UI isolate.
100 FlutterUIThreadPolicy ui_thread_policy_;
101};
102
103} // namespace flutter
104
105#endif // FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_PROJECT_BUNDLE_H_
const std::filesystem::path & assets_path()
FlutterGpuPreference gpu_preference() const
const std::vector< std::string > GetSwitches()
const std::string & dart_entrypoint() const
const std::vector< std::string > & dart_entrypoint_arguments() const
UniqueAotDataPtr LoadAotData(const FlutterEngineProcTable &engine_procs)
const std::filesystem::path & icu_path()
FlutterUIThreadPolicy ui_thread_policy()
void SetSwitches(const std::vector< std::string > &switches)
std::unique_ptr< _FlutterEngineAOTData, FlutterEngineCollectAOTDataFnPtr > UniqueAotDataPtr
Function-pointer-based versions of the APIs above.
Definition embedder.h:3704