class Cql::Protocol::FrameEncoder
@private
Public Class Methods
new(protocol_version=1, compressor=nil)
click to toggle source
# File lib/cql/protocol/frame_encoder.rb, line 7 def initialize(protocol_version=1, compressor=nil) @protocol_version = protocol_version @compressor = compressor end
Public Instance Methods
change_stream_id(new_stream_id, buffer, offset=0)
click to toggle source
# File lib/cql/protocol/frame_encoder.rb, line 27 def change_stream_id(new_stream_id, buffer, offset=0) buffer.update(offset + 2, new_stream_id.chr) end
encode_frame(request, stream_id=0, buffer=nil)
click to toggle source
# File lib/cql/protocol/frame_encoder.rb, line 12 def encode_frame(request, stream_id=0, buffer=nil) raise InvalidStreamIdError, 'The stream ID must be between 0 and 127' unless 0 <= stream_id && stream_id < 128 buffer ||= CqlByteBuffer.new flags = request.trace? ? 2 : 0 body = request.write(@protocol_version, CqlByteBuffer.new) if @compressor && request.compressable? && @compressor.compress?(body) flags |= 1 body = @compressor.compress(body) end header = [@protocol_version, flags, stream_id, request.opcode, body.bytesize] buffer << header.pack(Formats::HEADER_FORMAT) buffer << body buffer end