Mercurial > hg-stable
changeset 35900:d9e71cce3b2f
wireprotoserver: move abstractserverproto class from wireproto
Let's have the interface live next to things that define it.
Differential Revision: https://phab.mercurial-scm.org/D1969
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 31 Jan 2018 11:28:18 -0800 |
parents | 1bf5263fe5cc |
children | ed939545edd0 |
files | mercurial/wireproto.py mercurial/wireprotoserver.py |
diffstat | 2 files changed, 42 insertions(+), 42 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/wireproto.py Wed Jan 31 10:48:35 2018 -0800 +++ b/mercurial/wireproto.py Wed Jan 31 11:28:18 2018 -0800 @@ -41,46 +41,6 @@ 'IncompatibleClient') bundle2required = '%s\n(%s)\n' % (bundle2requiredmain, bundle2requiredhint) -class abstractserverproto(object): - """abstract class that summarizes the protocol API - - Used as reference and documentation. - """ - - def getargs(self, args): - """return the value for arguments in <args> - - returns a list of values (same order as <args>)""" - raise NotImplementedError() - - def getfile(self, fp): - """write the whole content of a file into a file like object - - The file is in the form:: - - (<chunk-size>\n<chunk>)+0\n - - chunk size is the ascii version of the int. - """ - raise NotImplementedError() - - def redirect(self): - """may setup interception for stdout and stderr - - See also the `restore` method.""" - raise NotImplementedError() - - # If the `redirect` function does install interception, the `restore` - # function MUST be defined. If interception is not used, this function - # MUST NOT be defined. - # - # left commented here on purpose - # - #def restore(self): - # """reinstall previous stdout and stderr and return intercepted stdout - # """ - # raise NotImplementedError() - class remoteiterbatcher(peer.iterbatcher): def __init__(self, remote): super(remoteiterbatcher, self).__init__()
--- a/mercurial/wireprotoserver.py Wed Jan 31 10:48:35 2018 -0800 +++ b/mercurial/wireprotoserver.py Wed Jan 31 11:28:18 2018 -0800 @@ -31,6 +31,46 @@ HGTYPE2 = 'application/mercurial-0.2' HGERRTYPE = 'application/hg-error' +class abstractserverproto(object): + """abstract class that summarizes the protocol API + + Used as reference and documentation. + """ + + def getargs(self, args): + """return the value for arguments in <args> + + returns a list of values (same order as <args>)""" + raise NotImplementedError() + + def getfile(self, fp): + """write the whole content of a file into a file like object + + The file is in the form:: + + (<chunk-size>\n<chunk>)+0\n + + chunk size is the ascii version of the int. + """ + raise NotImplementedError() + + def redirect(self): + """may setup interception for stdout and stderr + + See also the `restore` method.""" + raise NotImplementedError() + + # If the `redirect` function does install interception, the `restore` + # function MUST be defined. If interception is not used, this function + # MUST NOT be defined. + # + # left commented here on purpose + # + #def restore(self): + # """reinstall previous stdout and stderr and return intercepted stdout + # """ + # raise NotImplementedError() + def decodevaluefromheaders(req, headerprefix): """Decode a long value from multiple HTTP request headers. @@ -48,7 +88,7 @@ return ''.join(chunks) -class webproto(wireproto.abstractserverproto): +class webproto(abstractserverproto): def __init__(self, req, ui): self.req = req self.response = '' @@ -202,7 +242,7 @@ return [] raise error.ProgrammingError('hgweb.protocol internal failure', rsp) -class sshserver(wireproto.abstractserverproto): +class sshserver(abstractserverproto): def __init__(self, ui, repo): self.ui = ui self.repo = repo