feat: cythonize headers in unmarshaller (#80)

This commit is contained in:
J. Nick Koston 2022-10-06 21:15:19 -10:00 committed by GitHub
parent 092a2072d7
commit ae96be70f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

View File

@ -5,6 +5,16 @@ import cython
from ..signature import SignatureType
cdef str HEADER_DESTINATION
cdef str HEADER_PATH
cdef str HEADER_INTERFACE
cdef str HEADER_MEMBER
cdef str HEADER_ERROR_NAME
cdef str HEADER_REPLY_SERIAL
cdef str HEADER_SENDER
cdef str HEADER_SIGNATURE
cdef unsigned int UINT32_SIZE
cdef unsigned int HEADER_ARRAY_OF_STRUCT_SIGNATURE_POSITION
cdef unsigned int HEADER_SIGNATURE_SIZE

View File

@ -57,6 +57,7 @@ HEADER_MEMBER = HeaderField.MEMBER.name
HEADER_ERROR_NAME = HeaderField.ERROR_NAME.name
HEADER_REPLY_SERIAL = HeaderField.REPLY_SERIAL.name
HEADER_SENDER = HeaderField.SENDER.name
HEADER_SIGNATURE = HeaderField.SIGNATURE.name
READER_TYPE = Callable[["Unmarshaller", SignatureType], Any]
@ -391,7 +392,7 @@ class Unmarshaller:
self._pos = HEADER_ARRAY_OF_STRUCT_SIGNATURE_POSITION
header_fields = self.header_fields(self._header_len)
self._pos += -self._pos & 7 # align 8
tree = get_signature_tree(header_fields.get(HeaderField.SIGNATURE.name, ""))
tree = get_signature_tree(header_fields.get(HEADER_SIGNATURE, ""))
self._message = Message(
destination=header_fields.get(HEADER_DESTINATION),
path=header_fields.get(HEADER_PATH),