class Cassandra::Protocol::V3::Encoder

Constants

HEADER_FORMAT

Public Class Methods

new(compressor = nil, protocol_version = 3) click to toggle source
   # File lib/cassandra/protocol/v3.rb
26 def initialize(compressor = nil, protocol_version = 3)
27   @compressor       = compressor
28   @protocol_version = protocol_version
29 end

Public Instance Methods

encode(buffer, request, stream_id) click to toggle source
   # File lib/cassandra/protocol/v3.rb
31 def encode(buffer, request, stream_id)
32   flags = request.trace? ? 2 : 0
33   body  = request.write(CqlByteBuffer.new, @protocol_version, self)
34 
35   if @compressor && request.compressable? && @compressor.compress?(body)
36     flags |= 1
37     body   = @compressor.compress(body)
38   end
39 
40   header = [@protocol_version, flags, stream_id, request.opcode, body.bytesize]
41   buffer << header.pack(HEADER_FORMAT)
42   buffer << body
43 
44   buffer
45 end
write_parameters(buffer, params, types, names = EMPTY_LIST) click to toggle source
   # File lib/cassandra/protocol/v3.rb
47 def write_parameters(buffer, params, types, names = EMPTY_LIST)
48   Coder.write_values_v3(buffer, params, types, names)
49 end