| 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 unsigned int OP_CODE_CONTINUATION |
| cdef unsigned int OP_CODE_TEXT |
| cdef unsigned int OP_CODE_BINARY |
| cdef unsigned int OP_CODE_CLOSE |
| cdef unsigned int OP_CODE_PING |
| cdef unsigned int OP_CODE_PONG |
|
|
| 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 object _opcode |
| cdef object _frame_fin |
| cdef object _frame_opcode |
| cdef object _frame_payload |
| cdef unsigned long long _frame_payload_len |
|
|
| cdef bytes _tail |
| cdef bint _has_mask |
| cdef bytes _frame_mask |
| cdef unsigned long long _payload_length |
| cdef unsigned int _payload_length_flag |
| cdef object _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, |
| opcode="unsigned int", |
| ) |
| cpdef void _feed_data(self, bytes data) |
|
|
| @cython.locals( |
| start_pos="unsigned int", |
| buf_len="unsigned int", |
| length="unsigned int", |
| chunk_size="unsigned int", |
| chunk_len="unsigned int", |
| buf_length="unsigned int", |
| first_byte="unsigned char", |
| second_byte="unsigned char", |
| end_pos="unsigned int", |
| has_mask=bint, |
| fin=bint, |
| ) |
| cpdef list parse_frame(self, bytes buf) |
|
|