On 2007-Nov-09, at 00:32, Ronald Oussoren wrote: > > On 8 Nov, 2007, at 20:55, Mike Covill wrote: > >> I wanted to try using the NSDistributedNotificationCenter to pass >> messages between two separate python programs running simultaneously, >> so to learn about doing this I created this class: >> >> FILE: listener.py >> --------------------------------------------------------------------- >> --- >> ------------------------- >> import Foundation >> >> class GetNotes(object): >> >> def __init__(self): >> '''register for an NSNotification''' >> nc = >> Foundation.NSDistributedNotificationCenter.defaultCenter() >> nc.addObserver_selector_name_object_(self, 'getMyNotes:', >> 'myNote', None) >> >> def getMyNotes_(self, note): >> print 'got a note!:', note.object >> --------------------------------------------------------------------- >> --- >> ------------------------- >> >> then I created an instance of this class and tried sending a >> notification via the command line, expecting to see a print statement >> that the notification was received: >> >> import Foundation as F >> import listener >> gn = listener.GetNotes() >> nc = F.NSDistributedNotificationCenter.defaultCenter() >> nc.postNotificationName_object_('myNote', None) >> >> So far, no such luck. Any suggestions? > > The delivery of notifications uses the runloop, it is basically > just another source of events. > > In a command-line tool you'll have to run the loop yourself, > something like: > > loop = F.NSRunLoop.currentRunLoop() > loop.run() > > (That last call will run the eventloop and therefore "block" your > script. It will also cause the notification to be delivered). > > Ronald >
Works great. Thanks Ronald. Mike >> Thanks, >> Mike >> _______________________________________________ >> Pythonmac-SIG maillist - Pythonmac-SIG@python.org >> http://mail.python.org/mailman/listinfo/pythonmac-sig > _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig