Пример #1
0
XzeroDaemon::~XzeroDaemon()
{
    delete eventHandler_;
    eventHandler_ = nullptr;

    unregisterPlugin(core_);
    delete core_;
    core_ = nullptr;

    while (!plugins_.empty())
        unloadPlugin(plugins_[plugins_.size() - 1]->name());

    delete runner_;
    runner_ = nullptr;

    delete unit_;
    unit_ = nullptr;

    delete server_;
    server_ = nullptr;

    instance_ = nullptr;

    x0::FlowRunner::shutdown();

#if defined(HAVE_SYSLOG_H)
    x0::SyslogSink::close();
#endif
}
Пример #2
0
XzeroDaemon::~XzeroDaemon()
{
    TRACE(2, "deleting eventHandler");
	delete eventHandler_;
	eventHandler_ = nullptr;

	while (!plugins_.empty())
		unloadPlugin(plugins_[plugins_.size() - 1]->name());

    TRACE(2, "deleting plugin core");
    if (core_) {
        unregisterPlugin(core_);
        delete core_;
        core_ = nullptr;
    }

    main_ = nullptr;

    TRACE(2, "deleting server");
	delete server_;
	server_ = nullptr;

	instance_ = nullptr;

#if defined(HAVE_SYSLOG_H)
	x0::SyslogSink::close();
#endif
}
Пример #3
0
void PluginManager::shutDown()
{
    if (m_shuttingDown)
        return;
    m_shuttingDown = true;

    // Unregister all plugins.
    Registry::iterator it;
    while ((it = m_registry.begin()) != m_registry.end())
        unregisterPlugin(it->second->id.c_str());

    if (static_cast<int>(m_table.size()) == m_nCachedPlugins)
        delete this;
}
Пример #4
0
/** safely unloads a plugin. */
void XzeroDaemon::unloadPlugin(const std::string& name)
{
	log(Severity::debug, "Unloading plugin: %s", name.c_str());

	for (auto plugin: plugins_) {
		if (plugin->name() == name) {
			unregisterPlugin(plugin);

			auto m = pluginLibraries_.find(plugin);
			if (m != pluginLibraries_.end()) {
				delete plugin;
				m->second.close();
				pluginLibraries_.erase(m);
			}
			return;
		}
	}
}
	foreach(VideoInformationPlugin *plugin, getAllAdultPlugins())
	{
		if (removeFromDisk) QFile::remove(plugin->getScriptFile(false));
		// unregister this plugin
		unregisterPlugin(plugin);
	}
Пример #6
0
bool ossimSharedPluginRegistry::unregisterPlugin(int idx)
{
   ossimPluginLibrary* lib = getPlugin(idx);
   
   return unregisterPlugin(lib);
}