Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1075)

Unified Diff: third_party/twisted_8_1/twisted/spread/util.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/twisted_8_1/twisted/spread/util.py
diff --git a/third_party/twisted_8_1/twisted/spread/util.py b/third_party/twisted_8_1/twisted/spread/util.py
deleted file mode 100644
index d4f44d51d239667ce58e84a8ba8fe82f55d8e161..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/spread/util.py
+++ /dev/null
@@ -1,215 +0,0 @@
-# -*- test-case-name: twisted.test.test_pb -*-
-
-# Copyright (c) 2001-2007 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-
-"""
-Utility classes for spread.
-"""
-
-from twisted.internet import defer
-from twisted.python.failure import Failure
-from twisted.spread import pb
-from twisted.protocols import basic
-from twisted.internet import interfaces
-
-from zope.interface import implements
-
-
-class LocalMethod:
- def __init__(self, local, name):
- self.local = local
- self.name = name
-
- def __call__(self, *args, **kw):
- return self.local.callRemote(self.name, *args, **kw)
-
-
-class LocalAsRemote:
- """
- A class useful for emulating the effects of remote behavior locally.
- """
- reportAllTracebacks = 1
-
- def callRemote(self, name, *args, **kw):
- """
- Call a specially-designated local method.
-
- self.callRemote('x') will first try to invoke a method named
- sync_x and return its result (which should probably be a
- Deferred). Second, it will look for a method called async_x,
- which will be called and then have its result (or Failure)
- automatically wrapped in a Deferred.
- """
- if hasattr(self, 'sync_'+name):
- return getattr(self, 'sync_'+name)(*args, **kw)
- try:
- method = getattr(self, "async_" + name)
- return defer.succeed(method(*args, **kw))
- except:
- f = Failure()
- if self.reportAllTracebacks:
- f.printTraceback()
- return defer.fail(f)
-
- def remoteMethod(self, name):
- return LocalMethod(self, name)
-
-
-class LocalAsyncForwarder:
- """
- A class useful for forwarding a locally-defined interface.
- """
-
- def __init__(self, forwarded, interfaceClass, failWhenNotImplemented=0):
- assert interfaceClass.providedBy(forwarded)
- self.forwarded = forwarded
- self.interfaceClass = interfaceClass
- self.failWhenNotImplemented = failWhenNotImplemented
-
- def _callMethod(self, method, *args, **kw):
- return getattr(self.forwarded, method)(*args, **kw)
-
- def callRemote(self, method, *args, **kw):
- if self.interfaceClass.queryDescriptionFor(method):
- result = defer.maybeDeferred(self._callMethod, method, *args, **kw)
- return result
- elif self.failWhenNotImplemented:
- return defer.fail(
- Failure(NotImplementedError,
- "No Such Method in Interface: %s" % method))
- else:
- return defer.succeed(None)
-
-
-class Pager:
- """
- I am an object which pages out information.
- """
- def __init__(self, collector, callback=None, *args, **kw):
- """
- Create a pager with a Reference to a remote collector and
- an optional callable to invoke upon completion.
- """
- if callable(callback):
- self.callback = callback
- self.callbackArgs = args
- self.callbackKeyword = kw
- else:
- self.callback = None
- self._stillPaging = 1
- self.collector = collector
- collector.broker.registerPageProducer(self)
-
- def stillPaging(self):
- """
- (internal) Method called by Broker.
- """
- if not self._stillPaging:
- self.collector.callRemote("endedPaging")
- if self.callback is not None:
- self.callback(*self.callbackArgs, **self.callbackKeyword)
- return self._stillPaging
-
- def sendNextPage(self):
- """
- (internal) Method called by Broker.
- """
- self.collector.callRemote("gotPage", self.nextPage())
-
- def nextPage(self):
- """
- Override this to return an object to be sent to my collector.
- """
- raise NotImplementedError()
-
- def stopPaging(self):
- """
- Call this when you're done paging.
- """
- self._stillPaging = 0
-
-
-class StringPager(Pager):
- """
- A simple pager that splits a string into chunks.
- """
- def __init__(self, collector, st, chunkSize=8192, callback=None, *args, **kw):
- self.string = st
- self.pointer = 0
- self.chunkSize = chunkSize
- Pager.__init__(self, collector, callback, *args, **kw)
-
- def nextPage(self):
- val = self.string[self.pointer:self.pointer+self.chunkSize]
- self.pointer += self.chunkSize
- if self.pointer >= len(self.string):
- self.stopPaging()
- return val
-
-
-class FilePager(Pager):
- """
- Reads a file in chunks and sends the chunks as they come.
- """
- implements(interfaces.IConsumer)
-
- def __init__(self, collector, fd, callback=None, *args, **kw):
- self.chunks = []
- Pager.__init__(self, collector, callback, *args, **kw)
- self.startProducing(fd)
-
- def startProducing(self, fd):
- self.deferred = basic.FileSender().beginFileTransfer(fd, self)
- self.deferred.addBoth(lambda x : self.stopPaging())
-
- def registerProducer(self, producer, streaming):
- self.producer = producer
- if not streaming:
- self.producer.resumeProducing()
-
- def unregisterProducer(self):
- self.producer = None
-
- def write(self, chunk):
- self.chunks.append(chunk)
-
- def sendNextPage(self):
- """
- Get the first chunk read and send it to collector.
- """
- if not self.chunks:
- return
- val = self.chunks.pop(0)
- self.producer.resumeProducing()
- self.collector.callRemote("gotPage", val)
-
-
-# Utility paging stuff.
-class CallbackPageCollector(pb.Referenceable):
- """
- I receive pages from the peer. You may instantiate a Pager with a
- remote reference to me. I will call the callback with a list of pages
- once they are all received.
- """
- def __init__(self, callback):
- self.pages = []
- self.callback = callback
-
- def remote_gotPage(self, page):
- self.pages.append(page)
-
- def remote_endedPaging(self):
- self.callback(self.pages)
-
-
-def getAllPages(referenceable, methodName, *args, **kw):
- """
- A utility method that will call a remote method which expects a
- PageCollector as the first argument.
- """
- d = defer.Deferred()
- referenceable.callRemote(methodName, CallbackPageCollector(d.callback), *args, **kw)
- return d
-
« no previous file with comments | « third_party/twisted_8_1/twisted/spread/ui/tkutil.py ('k') | third_party/twisted_8_1/twisted/tap/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698