Esempio n. 1
0
LightBird::IMetadata Plugins::getMetadata(const QString &id) const
{
    Mutex   mutex(this->mutex, Mutex::READ, "Plugins", "getMetadata");
    Plugin  *plugin;
    LightBird::IMetadata metadata;

    if (!mutex)
        return (metadata);
    if (this->plugins.contains(id))
        plugin = this->plugins.value(id);
    else
    {
        plugin = new Plugin(id);
        if (!plugin->load(false))
        {
            LOG_WARNING("Unable to load the plugin in order to get its metadata", Properties("id", id), "Plugins", "getMetadata");
            delete plugin;
            return (metadata);
        }
    }
    metadata = plugin->getMetadata();
    if (!this->plugins.contains(id))
        delete plugin;
    return (metadata);
}
Esempio n. 2
0
Plugin* PluginManager::getPlugin(const String& name)
{
	for( size_t i = 0; i < plugins.size(); i++ )
	{
		Plugin* plugin = plugins[i];
		const PluginMetadata& metadata = plugin->getMetadata();
		if(metadata.name == name) return plugin;
	}

	return nullptr;
}