Plugin architecture; was: [sldev] Avatar list ready for testing!
Tateru Nino
tateru.nino at gmail.com
Wed Feb 21 14:33:20 PST 2007
Hmm. How about this? The plugin subsystem gets a feed of decoded
messages forked from the network handlers. It can either use some
interest-list/registration system, or just spew messages raw to the
plugin and expect each plugin to discard what it is not interested in -
as a preliminary measure. Additionally the viewer should be able to
inject messages of it's own, destined for the plugin subsystem. This
could indeed be done with a socket or local network port.
The plugin subsystem in turn can generate messages to be injected
asynchronously back into the viewer, either to trigger the viewer itself
to take an action (make your own list of local actions and expand as
necessary), or to generate a message to return to the grid via the
data-stream (more based on what actions the viewer can take via the
network protocol).
Sure...it's cheap. In its simplest form, its potentially grossly
_wasteful_, even. But heck, if you _really_ wanted a cheapass bot, plug
a python script, have it tell the viewer to 'stop rendering' (to save
all those CPU cycles, same as minimise mode), sit back and let python drive.
Potentially, it could be used as a stopgap for exploring just what sort
of facilities and layered interfaces you _want_ in a plugin architecture.
Dale Glass wrote:
> В сообщении от 21 февраля 2007 17:38 Mike Monkowski написал(a):
>
>> But maybe you could answer a question I've been trying to figure out
>> concerning the plugin discussion here. I can understand in a browser
>> how plugins can be inserted in the stream of data and act as a filter
>> for specific file types. Would this mean that the SecondLife plugins
>> would be inserted in the message stream between the client and server?
>>
> Something like that, although considerable work is needed here. For example,
> take my scanner. It queries the avatar's payment info and birth date. Now,
> when the reply arrives, the client gets a packet of the AvatarPropertiesReply
> type. A plugin would have to register itself and say "Hey, I want to know
> when one of those gets received too". Except that in the current code there
> can be only one handler per message type, so that will have to be fixed.
>
>
>> Or would they work off of the local cache? Or would they reference a
>>
> Definitely not, there's not much you could do with that and it'd be ugly too.
>
>
>> class that had accessors for each of the global variables?
>>
> A bit of everything would be needed. A plugin needs to be able to tell the
> viewer that it's interested in certain types of packets. It has to be able to
> access some internal state (avatar list, say). It's got to be able to do
> things like creating windows, sending commands to the sim, etc. Quite big
> changes are needed here.
>
>
>> Mike
>>
>> _______________________________________________
>> Click here to unsubscribe or manage your list subscription:
>> /index.html
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Click here to unsubscribe or manage your list subscription:
>> /index.html
>>
--
Tateru Nino
http://dwellonit.blogspot.com/
More information about the SLDev
mailing list