MCPcopy Create free account
hub / github.com/apache/cassandra-python-driver / decode_header

Method decode_header

cassandra/segment.py:187–207  ·  view source on GitHub ↗
(self, buffer)

Source from the content-addressed store, hash-verified

185 self._encode_segment(buffer, payload, is_self_contained)
186
187 def decode_header(self, buffer):
188 header_data = read_uint_le(buffer, self.header_length)
189
190 expected_header_crc = read_uint_le(buffer, CRC24_LENGTH)
191 actual_header_crc = compute_crc24(header_data, self.header_length)
192 if actual_header_crc != expected_header_crc:
193 raise CrcException('CRC mismatch on header {:x}. Received {:x}", computed {:x}.'.format(
194 header_data, expected_header_crc, actual_header_crc))
195
196 payload_length = header_data & Segment.MAX_PAYLOAD_LENGTH
197 header_data >>= 17
198
199 if self.compression:
200 uncompressed_payload_length = header_data & Segment.MAX_PAYLOAD_LENGTH
201 header_data >>= 17
202 else:
203 uncompressed_payload_length = -1
204
205 is_self_contained = (header_data & 1) == 1
206
207 return SegmentHeader(payload_length, uncompressed_payload_length, is_self_contained)
208
209 def decode(self, buffer, header):
210 encoded_payload = buffer.read(header.payload_length)

Calls 4

read_uint_leFunction · 0.90
compute_crc24Function · 0.85
CrcExceptionClass · 0.85
SegmentHeaderClass · 0.85