##// END OF EJS Templates
bundle2: use compression engines API to obtain decompressor...
Gregory Szorc -
r30353:d045b409 default
parent child Browse files
Show More
@@ -681,7 +681,7 b' class unbundle20(unpackermixin):'
681 def __init__(self, ui, fp):
681 def __init__(self, ui, fp):
682 """If header is specified, we do not read it out of the stream."""
682 """If header is specified, we do not read it out of the stream."""
683 self.ui = ui
683 self.ui = ui
684 self._decompressor = util.decompressors[None]
684 self._compengine = util.compengines.forbundletype('UN')
685 self._compressed = None
685 self._compressed = None
686 super(unbundle20, self).__init__(fp)
686 super(unbundle20, self).__init__(fp)
687
687
@@ -755,9 +755,9 b' class unbundle20(unpackermixin):'
755 params = self._readexact(paramssize)
755 params = self._readexact(paramssize)
756 self._processallparams(params)
756 self._processallparams(params)
757 yield params
757 yield params
758 assert self._decompressor is util.decompressors[None]
758 assert self._compengine.bundletype == 'UN'
759 # From there, payload might need to be decompressed
759 # From there, payload might need to be decompressed
760 self._fp = self._decompressor(self._fp)
760 self._fp = self._compengine.decompressorreader(self._fp)
761 emptycount = 0
761 emptycount = 0
762 while emptycount < 2:
762 while emptycount < 2:
763 # so we can brainlessly loop
763 # so we can brainlessly loop
@@ -781,7 +781,7 b' class unbundle20(unpackermixin):'
781 # make sure param have been loaded
781 # make sure param have been loaded
782 self.params
782 self.params
783 # From there, payload need to be decompressed
783 # From there, payload need to be decompressed
784 self._fp = self._decompressor(self._fp)
784 self._fp = self._compengine.decompressorreader(self._fp)
785 indebug(self.ui, 'start extraction of bundle2 parts')
785 indebug(self.ui, 'start extraction of bundle2 parts')
786 headerblock = self._readpartheader()
786 headerblock = self._readpartheader()
787 while headerblock is not None:
787 while headerblock is not None:
@@ -823,10 +823,10 b' def b2streamparamhandler(name):'
823 @b2streamparamhandler('compression')
823 @b2streamparamhandler('compression')
824 def processcompression(unbundler, param, value):
824 def processcompression(unbundler, param, value):
825 """read compression parameter and install payload decompression"""
825 """read compression parameter and install payload decompression"""
826 if value not in util.decompressors:
826 if value not in util.compengines.supportedbundletypes:
827 raise error.BundleUnknownFeatureError(params=(param,),
827 raise error.BundleUnknownFeatureError(params=(param,),
828 values=(value,))
828 values=(value,))
829 unbundler._decompressor = util.decompressors[value]
829 unbundler._compengine = util.compengines.forbundletype(value)
830 if value is not None:
830 if value is not None:
831 unbundler._compressed = True
831 unbundler._compressed = True
832
832
General Comments 0
You need to be logged in to leave comments. Login now