Hello,

I have implemented a NotificationCenter class similar to the one
available on the MacOSX foundation library (rooted back in the NeXT
NSFoundation library).

The NotificationCenter allows loosely binding between notifying
objects and listeners, and it is included in the open source crypto
library we have released as part of our project.

There is no documentation, but the code should be quite clean, and
there are some automatic tests where you should get some ideas on how
to use it. For any other question, feel free to contact me.

You can find the library here:
- http://code.google.com/p/clipperz

If you are interested on our project, you can find all the details here:
- http://www.clipperz.com

Hope this helps.

Regards,

Giulio Cesare




On Nov 15, 2007 12:30 PM, Zsolt <[EMAIL PROTECTED]> wrote:
>
> I needed the ability to have two or more objects of the same type talk
> to each other and respond to each others events. For example when one
> gets updated the other one should also do something. My first thought
> was to use MochiKit.Signal.signal but that needs a source as a first
> arg so that is not good because i do not know the name of the other
> object so i modified signal and came up with
>
> MochiKit.Base.update(MochiKit.Signal,{
>         'signalAll' : function(sig){
>                 var self= MochiKit.Signal;
>                 var observers = self._observers;
>                 var args = MochiKit.Base.extend(null, arguments, 1);
>                 var errors = [];
>         self._lock = true;
>         for (var i = 0; i < observers.length; i++) {
>             var ident = observers[i];
>             if (ident.signal === sig && ident.connected) {
>                 try {
>                     ident.listener.apply(ident.source, args);
>                 } catch (e) {
>                     errors.push(e);
>                 }
>             }
>         }
>                 self._lock = false;
>         if (self._dirty) {
>             self._dirty = false;
>             for (var i = observers.length - 1; i >= 0; i--) {
>                 if (!observers[i].connected) {
>                     observers.splice(i, 1);
>                 }
>             }
>         }
>                 if (errors.length == 1) {
>             throw errors[0];
>         } else if (errors.length > 1) {
>             var e = new Error("Multiple errors thrown in handling
> 'sig', see errors property");
>             e.errors = errors;
>             throw e;
>         }
>         }
> });
>
> Basicly you can now just call MochiKit.Signal.signalAll('onupdate');
> and every object connected to that signal will get notified.
>
> >
>

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

Reply via email to