本文整理汇总了C++中Plugin::done方法的典型用法代码示例。如果您正苦于以下问题:C++ Plugin::done方法的具体用法?C++ Plugin::done怎么用?C++ Plugin::done使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Plugin
的用法示例。
在下文中一共展示了Plugin::done方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: plugins_unloadplugin
/**
* Unloads plugin
* @param plugin Plugin that should be unloaded.
*/
void plugins_unloadplugin(Plugin plugin) {
if (plugin->beforeDepsUnload != NULL) {
plugin->beforeDepsUnload(plugin->info);
}
// Unload all plugin's dependencies.
if (plugin->deps != NULL) {
TOKENS tok = tokenizer_tokenize(plugin->deps, ',');
for (size_t i = 0; i < tok->count; i++) {
if (plugins_isloaded(tokenizer_gettok(tok, i))) {
plugins_unload(tokenizer_gettok(tok, i));
}
}
tokenizer_free(tok);
}
if (plugin->done != NULL) {
plugin->done(plugin->info);
}
// Free plugin handle.
if (dlclose(plugin->handle) != 0) {
printError("plugins", "Unable to unload library: %s", dlerror());
}
free(plugin->info);
free(plugin->name);
free(plugin->path);
// Remove plugin from chain
if (plugin->prev != NULL) {
plugin->prev->next = plugin->next;
} else {
loadedPlugins->first = plugin->next;
}
if (plugin->next != NULL) {
plugin->next->prev = plugin->prev;
} else {
loadedPlugins->last = plugin->prev;
}
free(plugin);
} // plugins_unloadplugin