예제 #1
0
파일: http.py 프로젝트: msfrank/Higgins
 def gotResp(resp, num):
     def print_(n):
         print "DATA %s: %r" % (num, n)
     def printdone(n):
         print "DONE %s" % num
     print "GOT RESPONSE %s: %s" % (num, resp)
     stream_mod.readStream(resp.stream, print_).addCallback(printdone)
예제 #2
0
파일: xmlrpc.py 프로젝트: msfrank/Higgins
 def http_POST(self, request):
     parser, unmarshaller = xmlrpclib.getparser()
     deferred = stream.readStream(request.stream, parser.feed)
     deferred.addCallback(lambda x: self._cbDispatch(
         request, parser, unmarshaller))
     deferred.addErrback(self._ebRender)
     deferred.addCallback(self._cbRender, request)
     return deferred
예제 #3
0
def readIntoFile(stream, outFile, maxlen):
    """Read the stream into a file, but not if it's longer than maxlen.
    Returns Deferred which will be triggered on finish.
    """
    curlen = [0]
    def done(_):
        return _
    def write(data):
        curlen[0] += len(data)
        if curlen[0] > maxlen:
            raise MimeFormatError("Maximum length of %d bytes exceeded." %
                                  maxlen)
        
        outFile.write(data)
    return readStream(stream, write).addBoth(done)