blob: 1e1cbb565f487f403be9235206fa5e225a31f447 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FLUTTER_SHELL_PLATFORM_LINUX_FL_PLUGIN_REGISTRY_H_
#define FLUTTER_SHELL_PLATFORM_LINUX_FL_PLUGIN_REGISTRY_H_
#if !defined(__FLUTTER_LINUX_INSIDE__) && !defined(FLUTTER_LINUX_COMPILATION)
#error "Only <flutter_linux/flutter_linux.h> can be included directly."
#endif
#include <glib-object.h>
#include "fl_plugin_registrar.h"
G_BEGIN_DECLS
G_DECLARE_INTERFACE(FlPluginRegistry,
fl_plugin_registry,
FL,
PLUGIN_REGISTRY,
GObject)
/**
* FlPluginRegistry:
*
* #FlPluginRegistry vends #FlPluginRegistrar objects for named plugins.
*/
struct _FlPluginRegistryInterface {
GTypeInterface g_iface;
/**
* FlPluginRegistry::get_registrar_for_plugin:
* @registry: an #FlPluginRegistry.
* @name: plugin name.
*
* Gets the plugin registrar for the the plugin with @name.
*
* Returns: (transfer full): an #FlPluginRegistrar.
*/
FlPluginRegistrar* (*get_registrar_for_plugin)(FlPluginRegistry* registry,
const gchar* name);
};
/**
* fl_plugin_registry_get_registrar_for_plugin:
* @registry: an #FlPluginRegistry.
* @name: plugin name.
*
* Gets the plugin registrar for the the plugin with @name.
*
* Returns: (transfer full): an #FlPluginRegistrar.
*/
FlPluginRegistrar* fl_plugin_registry_get_registrar_for_plugin(
FlPluginRegistry* registry,
const gchar* name);
G_END_DECLS
#endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_PLUGIN_REGISTRY_H_