freeride-devel
[Top][All Lists]
Advanced

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

Re: [FR-devel] Problem with RUNNING state


From: Laurent Julliard
Subject: Re: [FR-devel] Problem with RUNNING state
Date: Wed, 26 Jun 2002 17:13:14 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020529

Rich Kilmer wrote:
Response is at the bottom of this message.


[RICH -- we can make a plugin be dependent on a subsystems, right?]


Right now a subsystem is just a collection that has no manifestation in
the plugin architecture.  It literally is just a holder of many plugins
that each get loaded and was put in place to simplify grouping plugin
xml data. Because of this you cannot be dependent on it.
Thus (Curt) when you specify:

<subsystem name="GuiRenderFox">

the name is ignored.

So here is the idea.  Register the subsystem as a plugin using the
StandardPlugin module as its mixin (and REQUIRE a name be supplied).

Rich,

I'm a bit lost (or tired or both :-) ). Could you be more precise on how to register the susbsystem as a plugin? What do you mean exactly by "and REQUIRE a name be supplied".

Would you be willing to provide some sample code here? That would help...

> It
would have no behavior except being dependent on all plugins specified
within it.  Then you name the GuiFoxRender subsystem GuiRender instead
like this:

BEGIN freeride\plugins\System_GuiRenderFox\plugin.xml

<subsystem name="GuiRender">

  <plugin name="AppFrameRenderFox" version="1.0" autoload="true">
    <require>plugins/System_GuiRenderFox/AppFrameRenderFox</require>
    <module>FreeRIDE::AppFrameRenderFox</module>
<properties>properties/GuiRenderFox/AppFrameRenderFox.xml</properties>
    <dependency state="LOADED" action="start">
      <when plugin="Logger" version="*" state="RUNNING"/>
    </dependency>
  </plugin>

  ...

END

The point here is that you should not have duplicate rendering
subsystems working at the same time in freeride, but we do want them
pluggable.  So the next framework that comes along to enable rendering
would also name its subsystem GuiRender (with its inner plugins still
named specific names like AppFrameRenderFox).  If someone writes a
plugin that requires the Fox GuiRender subsystem, they would set their
dependencies as GuiRender AND AppFrameRenderFox.  If they just need a
GuiRender subsystem, there is only the single (pluggable) dependency
that uses whatever renderer is installed.  I could also raise a fatal
error on startup if two plugins try and register under the same name
(such as if you installed two rendering subsystems at the same time).

This would be really straightforward to implement.

Thoughts?


Curt




_______________________________________________
Freeride-devel mailing list
address@hidden
http://mail.freesoftware.fsf.org/mailman/listinfo/freeride-devel



_______________________________________________
Freeride-devel mailing list
address@hidden
http://mail.freesoftware.fsf.org/mailman/listinfo/freeride-devel




--
Laurent JULLIARD - Xerox R&T/SSTC/XPA - Open Source team
>> Host your Xerox Software project on CodeX: http://codex.xerox.com
>> address@hidden community: http://xww.linux.world.xerox.com




reply via email to

[Prev in Thread] Current Thread [Next in Thread]