equal
deleted
inserted
replaced
826 self.mandatorykeys = () |
826 self.mandatorykeys = () |
827 self._payloadstream = None |
827 self._payloadstream = None |
828 self._readheader() |
828 self._readheader() |
829 self._mandatory = None |
829 self._mandatory = None |
830 self._chunkindex = [] #(payload, file) position tuples for chunk starts |
830 self._chunkindex = [] #(payload, file) position tuples for chunk starts |
|
831 self._pos = 0 |
831 |
832 |
832 def _fromheader(self, size): |
833 def _fromheader(self, size): |
833 """return the next <size> byte from the header""" |
834 """return the next <size> byte from the header""" |
834 offset = self._headeroffset |
835 offset = self._headeroffset |
835 data = self._headerdata[offset:(offset + size)] |
836 data = self._headerdata[offset:(offset + size)] |
928 data = self._payloadstream.read() |
929 data = self._payloadstream.read() |
929 else: |
930 else: |
930 data = self._payloadstream.read(size) |
931 data = self._payloadstream.read(size) |
931 if size is None or len(data) < size: |
932 if size is None or len(data) < size: |
932 self.consumed = True |
933 self.consumed = True |
|
934 self._pos += len(data) |
933 return data |
935 return data |
|
936 |
|
937 def tell(self): |
|
938 return self._pos |
934 |
939 |
935 capabilities = {'HG2Y': (), |
940 capabilities = {'HG2Y': (), |
936 'b2x:listkeys': (), |
941 'b2x:listkeys': (), |
937 'b2x:pushkey': (), |
942 'b2x:pushkey': (), |
938 'digests': tuple(sorted(util.DIGESTS.keys())), |
943 'digests': tuple(sorted(util.DIGESTS.keys())), |