simple_sample.py :  » Development » Python-Dispatcher » PyDispatcher-2.0.1 » examples » Python Open Source

Home
Python Open Source
1.3.1.2 Python
2.Ajax
3.Aspect Oriented
4.Blog
5.Build
6.Business Application
7.Chart Report
8.Content Management Systems
9.Cryptographic
10.Database
11.Development
12.Editor
13.Email
14.ERP
15.Game 2D 3D
16.GIS
17.GUI
18.IDE
19.Installer
20.IRC
21.Issue Tracker
22.Language Interface
23.Log
24.Math
25.Media Sound Audio
26.Mobile
27.Network
28.Parser
29.PDF
30.Project Management
31.RSS
32.Search
33.Security
34.Template Engines
35.Test
36.UML
37.USB Serial
38.Web Frameworks
39.Web Server
40.Web Services
41.Web Unit
42.Wiki
43.Windows
44.XML
Python Open Source » Development » Python Dispatcher 
Python Dispatcher » PyDispatcher 2.0.1 » examples » simple_sample.py
"""Simple sample showing basic usage pattern"""
from pydispatch import dispatcher

def doSomethingUseful( table, signal, sender ):
  """Sample method to receive signals"""
  print '  doSomethingUseful', repr(table), signal, sender
def doSomethingElse( signal, **named ):
  """Sample method to receive signals

  This method demonstrates the use of the **named
  parameter, which allows a method to receive all
  remaining parameters from the send call.
  """
  print '  doSomethingElse', named
def doDefault( ):
  """Sample method to receive All signals

  Note that this function will be registered for all
  signals from a given object.  It does not have the
  same interface as any of the other functions
  registered for those signals.  The system will
  automatically determine the appropriate calling
  signature for the function.
  """
  print '  doDefault (no arguments)'

class Node(object):
  """Sample object to send signals, note lack of dispatcher-aware code"""
  def __init__( self, name="an object" ):
    self.name = name
  def __repr__( self ):
    return "%s( %r )"%( self.__class__.__name__, self.name )

DO_LOTS = 0
DO_SOMETHING = ('THIS','IS','A','MORE','COMPLEX','SIGNAL')
DO_SOMETHING_ELSE = Node()

ourObjects = [
  Node(),
  Node(),
  Node(),
]
if __name__ == "__main__":
  # Establish some "routing" connections
  dispatcher.connect (
    doSomethingUseful,
    signal = DO_LOTS,
    sender = ourObjects[0],
  )
  dispatcher.connect (
    doSomethingElse,
    signal = DO_SOMETHING,
    sender = ourObjects[0],
  )
  dispatcher.connect(
    doDefault,
    signal = dispatcher.Any, # this is actually the default,
    sender = ourObjects[0],
  )
  print "Sending DO_LOTS from first object"
  dispatcher.send(
    signal = DO_LOTS,
    sender = ourObjects[0],
    table = "Table Argument",
  )
  print "Sending DO_SOMETHING from first object"
  dispatcher.send(
    signal = DO_SOMETHING,
    sender = ourObjects[0],
    table = "Table Argument",
  )
  print "Sending DO_SOMETHING_ELSE from first object"
  dispatcher.send(
    signal = DO_SOMETHING_ELSE,
    sender = ourObjects[0],
    table = "Table Argument",
  )
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.