You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2019/09/10 14:13:48 UTC

[tinkerpop] 02/07: Convert RequestMessage header to compiled Struct

This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch TINKERPOP-2279
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 8796141824736e23d608feddde66ad6499b2e93c
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Tue Sep 10 08:32:01 2019 -0400

    Convert RequestMessage header to compiled Struct
---
 .../src/main/jython/gremlin_python/driver/serializer.py    | 14 ++++++++------
 gremlin-python/src/main/jython/tests/conftest.py           |  2 +-
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/gremlin-python/src/main/jython/gremlin_python/driver/serializer.py b/gremlin-python/src/main/jython/gremlin_python/driver/serializer.py
index e4b81db..630600d 100644
--- a/gremlin-python/src/main/jython/gremlin_python/driver/serializer.py
+++ b/gremlin-python/src/main/jython/gremlin_python/driver/serializer.py
@@ -175,6 +175,10 @@ class GraphBinarySerializersV1(object):
     DEFAULT_WRITER_CLASS = graphbinaryV1.GraphBinaryWriter
     DEFAULT_VERSION = b"application/vnd.graphbinary-v1.0"
 
+    header_struct = struct.Struct('>b32sB')
+    header_pack = header_struct.pack
+    int_pack = graphbinaryV1.int32_pack
+
     def __init__(self, reader=None, writer=None, version=None):
         if not version:
             version = self.DEFAULT_VERSION
@@ -222,19 +226,17 @@ class GraphBinarySerializersV1(object):
 
     def finalize_message(self, message, mime_len, mime_type):
         ba = bytearray()
-        ba.extend(struct.pack(">b", mime_len))
-        ba.extend(mime_type)
-        ba.extend([0x81])
+        ba.extend(self.header_pack(mime_len, mime_type, 0x81))
         ba.extend(uuid.UUID(message['requestId']).bytes)
 
-        ba.extend(struct.pack(">i", len(message['op'])))
+        ba.extend(self.int_pack(len(message['op'])))
         ba.extend(message['op'].encode("utf-8"))
 
-        ba.extend(struct.pack(">i", len(message['processor'])))
+        ba.extend(self.int_pack(len(message['processor'])))
         ba.extend(message['processor'].encode("utf-8"))
 
         args = message["args"]
-        ba.extend(struct.pack(">i", len(args)))
+        ba.extend(self.int_pack(len(args)))
         for k, v in args.items():
             self._graphbinary_writer.toDict(k, ba)
 
diff --git a/gremlin-python/src/main/jython/tests/conftest.py b/gremlin-python/src/main/jython/tests/conftest.py
index 7d10109..c82876e 100644
--- a/gremlin-python/src/main/jython/tests/conftest.py
+++ b/gremlin-python/src/main/jython/tests/conftest.py
@@ -33,7 +33,7 @@ from gremlin_python.driver.serializer import (
 from gremlin_python.driver.tornado.transport import TornadoTransport
 
 # docker Gremlin Server = 172.17.0.2
-gremlin_server_host = "localhost"
+gremlin_server_host = "172.17.0.2"
 gremlin_server_url = 'ws://' + gremlin_server_host + ':45940/gremlin'