[Twisted-Python] rfc: pb filetransfers
Paul Boehm
typo at soniq.net
Thu Aug 29 13:34:56 EDT 2002
My approach to doing pb filetransfers is attached,
Suggestions welcome!
this code should illustrate the basic idea:
# A Session is a chain of Jobs that are carried out in order,
# one after another.
# The server builds a custom Session from Mixins, to provide
# only the jobs he wants to accept. ServerSession is the base
# class (pb.Viewable).
# FileSSM is the ServerSessionMixin for Filetransfers.
class FileSession(session.ServerSession, session.FileSSM):
pass
# Then that class is offered to clients via callRemote.
class FilePerspective(pb.Perspective):
def perspective_getsession(self):
return FileSession()
# That's all, the server now provides file transfer functionality
# to clients.
----
# Client builds a Custom Session too.
# FileCSM is the ClientSessionMixin for Filetransfers,
# CallableCSM provides session.call(func, args)
# which is used to call a function after some other
# job has completed (e.g. a file download)
class MySession(session.ClientSession, session.FileCSM, session.CallableCSM):
pass
# Then a session is requested from the server, and the received
# deferred is wrapped by MySession. After that we can queue jobs
# on the session.
session = MySession(perspective.callRemote("getsession"))
session.sendfile("/etc/hosts", "remotecopy")
session.getfile("/etc/passwd", "localcopy")
session.getfile("/etc/hosts", "localcopy")
session.call(woot, "Done with Session.")
# Go!
reactor.run()
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SAM3.tgz
Type: application/x-gzip
Size: 2421 bytes
Desc: not available
Url : http://twistedmatrix.com/pipermail/twisted-python/attachments/20020829/5b40312e/attachment.bin
More information about the Twisted-Python
mailing list