Feature request: suggestion for cPlugin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Udo Richter wrote:
> Udo Richter wrote:
> 
>>New patch including docs etc. later this day.
> 
> 
> ... as promised. Custom plugin services, including PLUGINS.html and
> newplugin update. This version still mentions Data=NULL as supported query.
> ...
> +To send messages to, or request services from some plugin that offers the protocol, the 
> +plugin can call the function <tt>cPluginManager::CallFirstService</tt>. This function
> +will send the request to the first plugin that supports this service protocol. The 

Actually it sends the call to _every_ plugin and returns as soon as one
has processed it. Should this be rephrased, or should the implementation
be changed to

cPlugin *cPluginManager::CallFirstService(const char *Id, void *Data)
{
   if (pluginManager) {
      for (cDll *dll = pluginManager->dlls.First(); dll; dll = pluginManager->dlls.Next(dll)) {
          cPlugin *p = dll->Plugin();
          if (p && p->Service(Id, NULL) && p->Service(Id, Data))
             return p;
          }
      }
   return NULL;
}

> +function returns a pointer to the plugin that handled the request, or <tt>NULL</tt>
> +if no plugin handles the request.
> +<p>
> +To send a messages to all plugins, the plugin can call the function 
> +<tt>cPluginManager::CallAllServices</tt>. This function will send the request to 
> +all plugins that support this service protocol.

Actually it sends the request to _all_ plugins, because it doesn't explicitly
check whether a particular plugin supports it. In this case this doesn't make
much difference, but I think the description should reflect what actually happens.

Klaus


[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux