コード例 #1
0
   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);
         }
      }
   }
コード例 #2
0
   // 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 ());
      }
   }
コード例 #3
0
   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);
         }
      }
   }
コード例 #4
0
   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);
         }
      }
   }