On 06 Aug 2008, at 02:22, Artur Bergman wrote:

In fact, it should only be accessible through closures (Unless you store it somewhere) since we don't want any global state to mess with clustering.

Cheers
Artur

On Aug 5, 2008, at 4:24 PM, Brad Fitzpatrick wrote:

I don't think this is a good change... RosterStorage is not a singleton. You can run multiple vhosts within a process, all with different RosterStorage mechanisms.


On Tue, Aug 5, 2008 at 7:30 AM, <[EMAIL PROTECTED]> wrote:
 [EMAIL PROTECTED]:  josboum | 2008-08-05 16:30:19 +0200
* for several plugins it's not possible to access their object after the ->register()
  phase is over; the object is then only referenced in closures.
This patch adds a method, ->singleton, to retrieve the object for later use. This is particularly useful for setting up applications a la DJabberd::Plugin::MyApp


Good point. The goal here is to be able to manipulate the roster from your App class.

Would it be acceptable to make the relevant plugin objects available through their
vhost object, along the lines of:

  $plugin = $vhost->some_method(....):

This would allow the vhost object to encapsulate all the plugins, and not expose them
through any other way.

The implementation needs a bit of more thought, as the $vhost method call is ideally as dumb as possible, but the MyApp class shouldn't need to knwo much about the internals.

Let me know if this the right way to proceed, and I'll happily add the functionality
in a more sane way.

Cheers,

--

Jos Boumans http://www.linkedin.com/in/josboumans

  How do I prove I'm not crazy to people who are?



Reply via email to