diff mercurial/wireprotoframing.py @ 37724:deff7cf7eefd

wireprotov2: change frame type and name for command response There was hole at frame type value 3. And the frame is better named as a command response. Differential Revision: https://phab.mercurial-scm.org/D3384
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 14 Apr 2018 14:37:23 -0700
parents e8fba6d578f0
children 3ea8323d6f95
line wrap: on
line diff
--- a/mercurial/wireprotoframing.py	Sat Apr 14 12:11:24 2018 -0700
+++ b/mercurial/wireprotoframing.py	Sat Apr 14 14:37:23 2018 -0700
@@ -43,7 +43,7 @@
 
 FRAME_TYPE_COMMAND_REQUEST = 0x01
 FRAME_TYPE_COMMAND_DATA = 0x02
-FRAME_TYPE_BYTES_RESPONSE = 0x04
+FRAME_TYPE_COMMAND_RESPONSE = 0x03
 FRAME_TYPE_ERROR_RESPONSE = 0x05
 FRAME_TYPE_TEXT_OUTPUT = 0x06
 FRAME_TYPE_PROGRESS = 0x07
@@ -52,7 +52,7 @@
 FRAME_TYPES = {
     b'command-request': FRAME_TYPE_COMMAND_REQUEST,
     b'command-data': FRAME_TYPE_COMMAND_DATA,
-    b'bytes-response': FRAME_TYPE_BYTES_RESPONSE,
+    b'command-response': FRAME_TYPE_COMMAND_RESPONSE,
     b'error-response': FRAME_TYPE_ERROR_RESPONSE,
     b'text-output': FRAME_TYPE_TEXT_OUTPUT,
     b'progress': FRAME_TYPE_PROGRESS,
@@ -79,12 +79,12 @@
     b'eos': FLAG_COMMAND_DATA_EOS,
 }
 
-FLAG_BYTES_RESPONSE_CONTINUATION = 0x01
-FLAG_BYTES_RESPONSE_EOS = 0x02
+FLAG_COMMAND_RESPONSE_CONTINUATION = 0x01
+FLAG_COMMAND_RESPONSE_EOS = 0x02
 
-FLAGS_BYTES_RESPONSE = {
-    b'continuation': FLAG_BYTES_RESPONSE_CONTINUATION,
-    b'eos': FLAG_BYTES_RESPONSE_EOS,
+FLAGS_COMMAND_RESPONSE = {
+    b'continuation': FLAG_COMMAND_RESPONSE_CONTINUATION,
+    b'eos': FLAG_COMMAND_RESPONSE_EOS,
 }
 
 FLAG_ERROR_RESPONSE_PROTOCOL = 0x01
@@ -99,7 +99,7 @@
 FRAME_TYPE_FLAGS = {
     FRAME_TYPE_COMMAND_REQUEST: FLAGS_COMMAND_REQUEST,
     FRAME_TYPE_COMMAND_DATA: FLAGS_COMMAND_DATA,
-    FRAME_TYPE_BYTES_RESPONSE: FLAGS_BYTES_RESPONSE,
+    FRAME_TYPE_COMMAND_RESPONSE: FLAGS_COMMAND_RESPONSE,
     FRAME_TYPE_ERROR_RESPONSE: FLAGS_ERROR_RESPONSE,
     FRAME_TYPE_TEXT_OUTPUT: {},
     FRAME_TYPE_PROGRESS: {},
@@ -348,8 +348,8 @@
             if done:
                 break
 
-def createbytesresponseframesfrombytes(stream, requestid, data,
-                                       maxframesize=DEFAULT_MAX_FRAME_SIZE):
+def createcommandresponseframesfrombytes(stream, requestid, data,
+                                         maxframesize=DEFAULT_MAX_FRAME_SIZE):
     """Create a raw frame to send a bytes response from static bytes input.
 
     Returns a generator of bytearrays.
@@ -357,9 +357,9 @@
 
     # Simple case of a single frame.
     if len(data) <= maxframesize:
-        flags = FLAG_BYTES_RESPONSE_EOS
+        flags = FLAG_COMMAND_RESPONSE_EOS
         yield stream.makeframe(requestid=requestid,
-                               typeid=FRAME_TYPE_BYTES_RESPONSE,
+                               typeid=FRAME_TYPE_COMMAND_RESPONSE,
                                flags=flags,
                                payload=data)
         return
@@ -371,12 +371,12 @@
         done = offset == len(data)
 
         if done:
-            flags = FLAG_BYTES_RESPONSE_EOS
+            flags = FLAG_COMMAND_RESPONSE_EOS
         else:
-            flags = FLAG_BYTES_RESPONSE_CONTINUATION
+            flags = FLAG_COMMAND_RESPONSE_CONTINUATION
 
         yield stream.makeframe(requestid=requestid,
-                               typeid=FRAME_TYPE_BYTES_RESPONSE,
+                               typeid=FRAME_TYPE_COMMAND_RESPONSE,
                                flags=flags,
                                payload=chunk)
 
@@ -608,7 +608,7 @@
 
         return meth(frame)
 
-    def onbytesresponseready(self, stream, requestid, data):
+    def oncommandresponseready(self, stream, requestid, data):
         """Signal that a bytes response is ready to be sent to the client.
 
         The raw bytes response is passed as an argument.
@@ -616,8 +616,8 @@
         ensureserverstream(stream)
 
         def sendframes():
-            for frame in createbytesresponseframesfrombytes(stream, requestid,
-                                                            data):
+            for frame in createcommandresponseframesfrombytes(stream, requestid,
+                                                              data):
                 yield frame
 
             self._activecommands.remove(requestid)
@@ -1039,7 +1039,7 @@
         request.state = 'receiving'
 
         handlers = {
-            FRAME_TYPE_BYTES_RESPONSE: self._onbytesresponseframe,
+            FRAME_TYPE_COMMAND_RESPONSE: self._oncommandresponseframe,
         }
 
         meth = handlers.get(frame.typeid)
@@ -1049,14 +1049,14 @@
 
         return meth(request, frame)
 
-    def _onbytesresponseframe(self, request, frame):
-        if frame.flags & FLAG_BYTES_RESPONSE_EOS:
+    def _oncommandresponseframe(self, request, frame):
+        if frame.flags & FLAG_COMMAND_RESPONSE_EOS:
             request.state = 'received'
             del self._activerequests[request.requestid]
 
         return 'responsedata', {
             'request': request,
-            'expectmore': frame.flags & FLAG_BYTES_RESPONSE_CONTINUATION,
-            'eos': frame.flags & FLAG_BYTES_RESPONSE_EOS,
+            'expectmore': frame.flags & FLAG_COMMAND_RESPONSE_CONTINUATION,
+            'eos': frame.flags & FLAG_COMMAND_RESPONSE_EOS,
             'data': frame.payload,
         }