import cython from .mask cimport _websocket_mask_cython as websocket_mask cdef unsigned int READ_HEADER cdef unsigned int READ_PAYLOAD_LENGTH cdef unsigned int READ_PAYLOAD_MASK cdef unsigned int READ_PAYLOAD cdef int OP_CODE_NOT_SET cdef int OP_CODE_CONTINUATION cdef int OP_CODE_TEXT cdef int OP_CODE_BINARY cdef int OP_CODE_CLOSE cdef int OP_CODE_PING cdef int OP_CODE_PONG cdef int COMPRESSED_NOT_SET cdef int COMPRESSED_FALSE cdef int COMPRESSED_TRUE cdef object UNPACK_LEN3 cdef object UNPACK_CLOSE_CODE cdef object TUPLE_NEW cdef object WSMsgType cdef object WSMessage cdef object WS_MSG_TYPE_TEXT cdef object WS_MSG_TYPE_BINARY cdef set ALLOWED_CLOSE_CODES cdef set MESSAGE_TYPES_WITH_CONTENT cdef tuple EMPTY_FRAME cdef tuple EMPTY_FRAME_ERROR cdef class WebSocketDataQueue: cdef unsigned int _size cdef public object _protocol cdef unsigned int _limit cdef object _loop cdef bint _eof cdef object _waiter cdef object _exception cdef public object _buffer cdef object _get_buffer cdef object _put_buffer cdef void _release_waiter(self) cpdef void feed_data(self, object data, unsigned int size) @cython.locals(size="unsigned int") cdef _read_from_buffer(self) cdef class WebSocketReader: cdef WebSocketDataQueue queue cdef unsigned int _max_msg_size cdef Exception _exc cdef bytearray _partial cdef unsigned int _state cdef int _opcode cdef bint _frame_fin cdef int _frame_opcode cdef list _payload_fragments cdef Py_ssize_t _frame_payload_len cdef bytes _tail cdef bint _has_mask cdef bytes _frame_mask cdef Py_ssize_t _payload_bytes_to_read cdef unsigned int _payload_len_flag cdef int _compressed cdef object _decompressobj cdef bint _compress cpdef tuple feed_data(self, object data) @cython.locals( is_continuation=bint, fin=bint, has_partial=bint, payload_merged=bytes, ) cpdef void _handle_frame(self, bint fin, int opcode, object payload, int compressed) except * @cython.locals( start_pos=Py_ssize_t, data_len=Py_ssize_t, length=Py_ssize_t, chunk_size=Py_ssize_t, chunk_len=Py_ssize_t, data_len=Py_ssize_t, data_cstr="const unsigned char *", first_byte="unsigned char", second_byte="unsigned char", f_start_pos=Py_ssize_t, f_end_pos=Py_ssize_t, has_mask=bint, fin=bint, had_fragments=Py_ssize_t, payload_bytearray=bytearray, ) cpdef void _feed_data(self, bytes data) except *