[Pythonmac-SIG] NSDistributedNotificationCenter

Mike Covill mcovill at mac.com
Fri Nov 9 15:35:49 CET 2007


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 at python.org
>> http://mail.python.org/mailman/listinfo/pythonmac-sig
>


More information about the Pythonmac-SIG mailing list