2 """This file defines a basic download-to-memory consumer, suitable for use in
3 a filenode's read() method. See download_to_data() for an example of its use.
6 from zope.interface import implements
7 from twisted.internet.interfaces import IConsumer
14 def registerProducer(self, p, streaming):
17 # call resumeProducing once to start things off
22 def write(self, data):
23 self.chunks.append(data)
24 def unregisterProducer(self):
27 def download_to_data(n, offset=0, size=None):
28 d = n.read(MemoryConsumer(), offset, size)
29 d.addCallback(lambda mc: "".join(mc.chunks))