Lines Matching refs:plugin
92 void RegisterStaticPlugin(const CORE_NS::IPlugin& plugin)
95 gGlobalPlugins.push_back(&plugin);
105 const IPlugin* plugin;
137 for (const auto plugin : staticPluginRegistry) {
138 if (plugin && (plugin->typeUid == IPlugin::UID)) {
139 CORE_LOG_V("\t%s", plugin->name);
140 plugins.push_back({ nullptr, plugin });
156 const IPlugin* plugin = lib->GetPlugin();
157 if (plugin && (plugin->typeUid == IPlugin::UID)) {
158 CORE_LOG_V("\t%s", plugin->name);
159 plugins.push_back({ move(lib), plugin });
297 // Gather dependencies of each plugin.
311 const LibPlugin& libPlugin) { return libPlugin.plugin->version.uid == uidToLoad; });
313 found = AllOf(pos->plugin->pluginDependencies, [&](const Uid& dependency) {
337 begin, end, [uid](const LibPlugin& libPlugin) { return libPlugin.plugin->version.uid == uid; });
348 if (NoneOf(plugins, [uid](const auto& available) { return available.plugin->version.uid == uid; })) {
359 for (auto& plugin : plugins) {
360 RegisterPlugin(move(plugin.lib), *plugin.plugin,
362 [&loading = (plugin.plugin->version.uid)](const Uid& userRequest) { return userRequest == loading; }));
430 // During plugin loading gather all the infos and send events once.
571 void PluginRegistry::RegisterPlugin(ILibrary::Ptr lib, const IPlugin& plugin, bool asDependency)
573 CORE_LOG_D("\tRegister Plugin: %s %s", plugin.name, to_string(plugin.version.uid).data());
574 if (plugin.version.GetVersionString) {
575 CORE_LOG_D("\tVersion Info: %s", plugin.version.GetVersionString());
578 [&plugin](const IPlugin* pl) { return strcmp(plugin.name, pl->name) == 0; })) {
579 CORE_LOG_W("\tSkipping duplicate plugin: %s!", plugin.name);
582 // when a plugin is loaded/ registered due a requested plugin depends on it ref count starts from zero and it's
583 // expected that some following plugin will place a reference. once that plugin releases its reference the
586 if (plugin.registerInterfaces) {
587 pd.token = plugin.registerInterfaces(*static_cast<IPluginRegister*>(this));
591 plugins_.push_back(&plugin);
592 for (const auto& dependency : plugin.pluginDependencies) {
594 [dependency](const IPlugin* plugin) { return plugin->version.uid == dependency; });
602 void PluginRegistry::UnregisterPlugin(const IPlugin& plugin, PluginToken token)
604 CORE_LOG_D("\tUnregister Plugin: %s %s", plugin.name, to_string(plugin.version.uid).data());
606 if (plugin.unregisterInterfaces) {
607 plugin.unregisterInterfaces(token);
624 // Create plugins:// protocol that points to plugin files.