Method: Cql::Protocol::DetailedErrorResponse.decode!

Defined in:
lib/cql/protocol/responses/detailed_error_response.rb

.decode!(code, message, buffer, trace_id = nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/cql/protocol/responses/detailed_error_response.rb', line 13

def self.decode!(code, message, buffer, trace_id=nil)
  details = {}
  case code
  when 0x1000 # unavailable
    details[:cl] = read_consistency!(buffer)
    details[:required] = read_int!(buffer)
    details[:alive] = read_int!(buffer)
  when 0x1100 # write_timeout
    details[:cl] = read_consistency!(buffer)
    details[:received] = read_int!(buffer)
    details[:blockfor] = read_int!(buffer)
    details[:write_type] = read_string!(buffer)
  when 0x1200 # read_timeout
    details[:cl] = read_consistency!(buffer)
    details[:received] = read_int!(buffer)
    details[:blockfor] = read_int!(buffer)
    details[:data_present] = read_byte!(buffer) != 0
  when 0x2400 # already_exists
    details[:ks] = read_string!(buffer)
    details[:table] = read_string!(buffer)
  when 0x2500
    details[:id] = read_short_bytes!(buffer)
  end
  new(code, message, details)
end