Update Windows and Linux plugin templates (#53876)

Updates Windows and Linux templates to use the new PluginRegistrarManager, improving lifetime handling and reducing boilerplate.
This commit is contained in:
stuartmorgan
2020-04-07 09:03:49 -07:00
committed by GitHub
parent b0492cc976
commit b429e7eb00
2 changed files with 6 additions and 18 deletions

View File

@@ -72,13 +72,7 @@ void {{pluginClass}}::HandleMethodCall(
void {{pluginClass}}RegisterWithRegistrar(
FlutterDesktopPluginRegistrarRef registrar) {
// The plugin registrar wrappers owns the plugins, registered callbacks, etc.,
// so must remain valid for the life of the application.
static auto *plugin_registrars =
new std::map<FlutterDesktopPluginRegistrarRef,
std::unique_ptr<flutter::PluginRegistrarGlfw>>;
auto insert_result = plugin_registrars->emplace(
registrar, std::make_unique<flutter::PluginRegistrarGlfw>(registrar));
{{pluginClass}}::RegisterWithRegistrar(insert_result.first->second.get());
{{pluginClass}}::RegisterWithRegistrar(
flutter::PluginRegistrarManager::GetInstance()
->GetRegistrar<flutter::PluginRegistrarGlfw>(registrar));
}

View File

@@ -83,13 +83,7 @@ void {{pluginClass}}::HandleMethodCall(
void {{pluginClass}}RegisterWithRegistrar(
FlutterDesktopPluginRegistrarRef registrar) {
// The plugin registrar wrappers owns the plugins, registered callbacks, etc.,
// so must remain valid for the life of the application.
static auto *plugin_registrars =
new std::map<FlutterDesktopPluginRegistrarRef,
std::unique_ptr<flutter::PluginRegistrarWindows>>;
auto insert_result = plugin_registrars->emplace(
registrar, std::make_unique<flutter::PluginRegistrarWindows>(registrar));
{{pluginClass}}::RegisterWithRegistrar(insert_result.first->second.get());
{{pluginClass}}::RegisterWithRegistrar(
flutter::PluginRegistrarManager::GetInstance()
->GetRegistrar<flutter::PluginRegistrarWindows>(registrar));
}