~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/smart/request.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2007-11-13 21:35:49 UTC
  • mfrom: (2748.4.16 hpss-streaming)
  • Revision ID: pqm@pqm.ubuntu.com-20071113213549-jdbrso1a6zbaufx7
(robertc) Implement chunked body encoding for the smart protocol. (Andrew Bennetts)

Show diffs side-by-side

added added

removed removed

Lines of Context:
83
83
    SuccessfulSmartServerResponse and FailedSmartServerResponse as appropriate.
84
84
    """
85
85
 
86
 
    def __init__(self, args, body=None):
 
86
    def __init__(self, args, body=None, body_stream=None):
 
87
        """Constructor.
 
88
 
 
89
        :param args: tuple of response arguments.
 
90
        :param body: string of a response body.
 
91
        :param body_stream: iterable of bytestrings to be streamed to the
 
92
            client.
 
93
        """
87
94
        self.args = args
 
95
        if body is not None and body_stream is not None:
 
96
            raise errors.BzrError(
 
97
                "'body' and 'body_stream' are mutually exclusive.")
88
98
        self.body = body
 
99
        self.body_stream = body_stream
89
100
 
90
101
    def __eq__(self, other):
91
102
        if other is None:
92
103
            return False
93
 
        return other.args == self.args and other.body == self.body
 
104
        return (other.args == self.args and
 
105
                other.body == self.body and
 
106
                other.body_stream is self.body_stream)
94
107
 
95
108
    def __repr__(self):
96
 
        return "<SmartServerResponse args=%r body=%r>" % (
97
 
            self.args, self.body)
 
109
        return "<SmartServerResponse %r args=%r body=%r>" % (
 
110
            self.is_successful(), self.args, self.body)
98
111
 
99
112
 
100
113
class FailedSmartServerResponse(SmartServerResponse):