void dump (const Handle Target, const PluginDiscoverEnum Mode) { PluginObserver *obs ( observerContext ? observerContext->obsTable.lookup (Target) : 0); if (obs) { const Handle Source (info.get_handle ()); HashTableHandleIterator it; PluginStruct *ps (0); while (pluginTable.get_next (it, ps)) { if (ps->info) { obs->update_runtime_plugin (Mode, Source, ps->info->get_handle ()); } } if (observerContext) { observerContext->obsActiveTable.store (Target, obs); } } }
// RuntimeModule Interface virtual void get_plugin_list (HandleContainer &container) { HashTableHandleIterator it; PluginStruct *ps (0); while (pluginTable.get_next (it, ps)) { container.add (it.get_hash_key ()); } }
void discover_plugin (const Plugin *PluginPtr) { HashTableHandleIterator it; for ( PluginStruct *current = pluginTable.get_first (it); current; current = pluginTable.get_next (it)) { if (current->plugin) { current->plugin->discover_plugin (PluginDiscoverAdd, PluginPtr); } } }
void discover_all_plugins (Plugin *pluginPtr) { if (pluginPtr) { HashTableHandleIterator it; for ( PluginStruct *current = interfaceTable.get_first (it); current; current = interfaceTable.get_next (it)) { pluginPtr->discover_plugin (PluginDiscoverAdd, current->plugin); } for ( const Plugin *ExPtr = externTable.get_first (it); ExPtr; ExPtr = externTable.get_next (it)) { pluginPtr->discover_plugin (PluginDiscoverAdd, ExPtr); } } }