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

Method _process_segment_buffer

cassandra/connection.py:1185–1205  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1183
1184 @defunct_on_error
1185 def _process_segment_buffer(self):
1186 readable_bytes = self._io_buffer.readable_io_bytes()
1187 if readable_bytes >= self._segment_codec.header_length_with_crc:
1188 try:
1189 self._io_buffer.io_buffer.seek(0)
1190 segment_header = self._segment_codec.decode_header(self._io_buffer.io_buffer)
1191
1192 if readable_bytes >= segment_header.segment_length:
1193 segment = self._segment_codec.decode(self._iobuf, segment_header)
1194 self._io_buffer._segment_consumed = True
1195 self._io_buffer.cql_frame_buffer.write(segment.payload)
1196 else:
1197 # not enough data to read the segment. reset the buffer pointer at the
1198 # beginning to not lose what we previously read (header).
1199 self._io_buffer._segment_consumed = False
1200 self._io_buffer.io_buffer.seek(0)
1201 except CrcException as exc:
1202 # re-raise an exception that inherits from ConnectionException
1203 raise CrcMismatchException(str(exc), self.endpoint)
1204 else:
1205 self._io_buffer._segment_consumed = False
1206
1207 def process_io_buffer(self):
1208 while True:

Callers 1

process_io_bufferMethod · 0.95

Calls 4

readable_io_bytesMethod · 0.80
decode_headerMethod · 0.80
decodeMethod · 0.80

Tested by

no test coverage detected