##// END OF EJS Templates
wireprotoserver: move abstractserverproto class from wireproto...
Gregory Szorc -
r35878:d9e71cce default
parent child Browse files
Show More
@@ -41,46 +41,6 b" bundle2requiredhint = _('see https://www"
41 'IncompatibleClient')
41 'IncompatibleClient')
42 bundle2required = '%s\n(%s)\n' % (bundle2requiredmain, bundle2requiredhint)
42 bundle2required = '%s\n(%s)\n' % (bundle2requiredmain, bundle2requiredhint)
43
43
44 class abstractserverproto(object):
45 """abstract class that summarizes the protocol API
46
47 Used as reference and documentation.
48 """
49
50 def getargs(self, args):
51 """return the value for arguments in <args>
52
53 returns a list of values (same order as <args>)"""
54 raise NotImplementedError()
55
56 def getfile(self, fp):
57 """write the whole content of a file into a file like object
58
59 The file is in the form::
60
61 (<chunk-size>\n<chunk>)+0\n
62
63 chunk size is the ascii version of the int.
64 """
65 raise NotImplementedError()
66
67 def redirect(self):
68 """may setup interception for stdout and stderr
69
70 See also the `restore` method."""
71 raise NotImplementedError()
72
73 # If the `redirect` function does install interception, the `restore`
74 # function MUST be defined. If interception is not used, this function
75 # MUST NOT be defined.
76 #
77 # left commented here on purpose
78 #
79 #def restore(self):
80 # """reinstall previous stdout and stderr and return intercepted stdout
81 # """
82 # raise NotImplementedError()
83
84 class remoteiterbatcher(peer.iterbatcher):
44 class remoteiterbatcher(peer.iterbatcher):
85 def __init__(self, remote):
45 def __init__(self, remote):
86 super(remoteiterbatcher, self).__init__()
46 super(remoteiterbatcher, self).__init__()
@@ -31,6 +31,46 b" HGTYPE = 'application/mercurial-0.1'"
31 HGTYPE2 = 'application/mercurial-0.2'
31 HGTYPE2 = 'application/mercurial-0.2'
32 HGERRTYPE = 'application/hg-error'
32 HGERRTYPE = 'application/hg-error'
33
33
34 class abstractserverproto(object):
35 """abstract class that summarizes the protocol API
36
37 Used as reference and documentation.
38 """
39
40 def getargs(self, args):
41 """return the value for arguments in <args>
42
43 returns a list of values (same order as <args>)"""
44 raise NotImplementedError()
45
46 def getfile(self, fp):
47 """write the whole content of a file into a file like object
48
49 The file is in the form::
50
51 (<chunk-size>\n<chunk>)+0\n
52
53 chunk size is the ascii version of the int.
54 """
55 raise NotImplementedError()
56
57 def redirect(self):
58 """may setup interception for stdout and stderr
59
60 See also the `restore` method."""
61 raise NotImplementedError()
62
63 # If the `redirect` function does install interception, the `restore`
64 # function MUST be defined. If interception is not used, this function
65 # MUST NOT be defined.
66 #
67 # left commented here on purpose
68 #
69 #def restore(self):
70 # """reinstall previous stdout and stderr and return intercepted stdout
71 # """
72 # raise NotImplementedError()
73
34 def decodevaluefromheaders(req, headerprefix):
74 def decodevaluefromheaders(req, headerprefix):
35 """Decode a long value from multiple HTTP request headers.
75 """Decode a long value from multiple HTTP request headers.
36
76
@@ -48,7 +88,7 b' def decodevaluefromheaders(req, headerpr'
48
88
49 return ''.join(chunks)
89 return ''.join(chunks)
50
90
51 class webproto(wireproto.abstractserverproto):
91 class webproto(abstractserverproto):
52 def __init__(self, req, ui):
92 def __init__(self, req, ui):
53 self.req = req
93 self.req = req
54 self.response = ''
94 self.response = ''
@@ -202,7 +242,7 b' def callhttp(repo, req, cmd):'
202 return []
242 return []
203 raise error.ProgrammingError('hgweb.protocol internal failure', rsp)
243 raise error.ProgrammingError('hgweb.protocol internal failure', rsp)
204
244
205 class sshserver(wireproto.abstractserverproto):
245 class sshserver(abstractserverproto):
206 def __init__(self, ui, repo):
246 def __init__(self, ui, repo):
207 self.ui = ui
247 self.ui = ui
208 self.repo = repo
248 self.repo = repo
General Comments 0
You need to be logged in to leave comments. Login now