~ubuntu-branches/debian/sid/pyro/sid

« back to all changes in this revision

Viewing changes to examples/callback/server.py

  • Committer: Bazaar Package Importer
  • Author(s): Carl Chenet, Carl Chenet, Jakub Wilk
  • Date: 2010-09-14 01:04:28 UTC
  • Revision ID: james.westby@ubuntu.com-20100914010428-02r7p1rzr7jvw94z
Tags: 1:3.9.1-2
[Carl Chenet]
* revert to 3.9.1-1 package because of the development status 
  of the 4.1 package is unsuitable for stable use
  DPMT svn #8557 revision (Closes: #589172) 
* added debian/source
* added debian/source/format
* package is now 3.0 (quilt) source format
* debian/control
  - Bump Standards-Version to 3.9.1

[Jakub Wilk]
* Add ‘XS-Python-Version: >= 2.5’ to prevent bytecompilation with python2.4
  (closes: #589053).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from __future__ import with_statement
2
 
import time
3
 
import Pyro
4
 
 
5
 
class Worker(object):
6
 
    def __init__(self,number,callback):
7
 
        self.number=number
8
 
        self.callback=callback
9
 
        print "Worker %d created" % self.number
10
 
    def work(self, amount):
11
 
        print "Worker %d busy..." % self.number
12
 
        time.sleep(amount)
13
 
        print "Worker %d done. Informing callback client." % self.number
14
 
        self._pyroDaemon.unregister(self)
15
 
        self.callback.done(self.number)    # invoke the callback object
16
 
 
17
 
class CallbackServer(object):
18
 
    def __init__(self):
19
 
        self.number=0
20
 
    def addworker(self, callback):
21
 
        self.number+=1
22
 
        print "server: adding worker",self.number
23
 
        worker=Worker(self.number, callback)
24
 
        uri=self._pyroDaemon.register(worker)
25
 
        return Pyro.core.Proxy(uri)
26
 
 
27
 
with Pyro.core.Daemon() as daemon:
28
 
    with Pyro.naming.locateNS() as ns:
29
 
        obj=CallbackServer()
30
 
        uri=daemon.register(obj)
31
 
        ns.remove("example.callback")
32
 
        ns.register("example.callback",uri)
33
 
    print "Server ready."
34
 
    daemon.requestLoop()