[MERGE] Add call_with_body_stream to _SmartClient; add support for streamed request bodies to the server.

Andrew Bennetts andrew.bennetts at canonical.com
Mon Jan 12 04:47:20 GMT 2009


This patch adds support for streamed request bodies to the smart client
and server.  It was always a planned part of the protocol so it
shouldn't cause any trouble for earlier servers; they'll just reject
those requests with no fuss (and no disconnections required).

The API on the client is that you can pass an iterable to
_SmartClient.call_with_body_stream.  The iterable should produce
strings.

The API on the server is that a class implementing an RPC may override
do_chunk to receive body bytes as they arrive.  Or, as before, they may
leave the default implementation of do_chunk untouched and just
implement do_body to receive the entire body as a single string.

There are a few parts of this patch related to tuples and bencode that
are superceded by
<http://bundlebuggy.aaronbentley.com/project/bzr/request/%3C20090107022415.GA2394%40steerpike.home.puzzling.org%3E>.
Those parts are basically tangential to this patch anyway.

-Andrew.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: call_with_body_stream-3929.patch
Type: text/x-diff
Size: 35983 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20090112/549a7561/attachment-0001.bin 


More information about the bazaar mailing list