On 29-Aug-06, at 4:25 PM, Jaime Cham wrote:

> It seems that it's a useful usage to disconnect all signals going  
> TO an
> object. For example, when the an object that connects itself to  
> several
> signals or events is destroyed, in order to ensure correct recovery of
> the memory it would want to disconnect itself.
>
> I use the following extra code for MochiKit.Async:
>
> MochiKit.Base.update(MochiKit.Async, {
>       disconnectAllTo: function (objOrFunc, funcOrStr /* optional */) {
>               if (typeof(objOrFunc) != 'object') {
>                       throw new Error("need to specify a receving object");
>               }
>         var self = MochiKit.Signal;
>         var observers = self._observers;
>               var i = 0;
>               while (i < observers.length) {
>                       var ident = observers[i];
>                       if (ident[4] == objOrFunc
>                               && (typeof(funcOrStr) == 'undefined'
>                                       || ident[5] == funcOrStr)
>                               ) {
>                               self._disconnect(ident);
>                               observers.splice(i, 1);
>                       }
>                       else
>                               i++;
>               }
>     },
> });
> disconnectAllTo = MochiKit.Async.disconnectAllTo;
>
> Is there already a different way of doing this? or am I violating some
> signal/slot design principle?
>

I can see how this would be useful. It probably belongs to Signal,  
not Async. Could you please submit a ticket asking to include this,  
and attach your code as a .js file?

Thanks!
Beau


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"MochiKit" group.
To post to this group, send email to mochikit@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/mochikit
-~----------~----~----~----~------~----~------~--~---

Reply via email to