class Cassandra::Protocol::QueryRequest

Attributes

consistency[RW]
cql[R]
page_size[R]
paging_state[R]
payload[R]
retries[RW]
serial_consistency[R]
timestamp[R]
type_hints[R]
values[R]

Public Class Methods

new(cql, values, type_hints, consistency, serial_consistency = nil, page_size = nil, paging_state = nil, trace = false, names = EMPTY_LIST, timestamp = nil, payload = nil) click to toggle source
Calls superclass method Cassandra::Protocol::Request::new
   # File lib/cassandra/protocol/requests/query_request.rb
26 def initialize(cql,
27                values,
28                type_hints,
29                consistency,
30                serial_consistency = nil,
31                page_size = nil,
32                paging_state = nil,
33                trace = false,
34                names = EMPTY_LIST,
35                timestamp = nil,
36                payload = nil)
37   super(7, trace)
38   @cql = cql
39   @values = values
40   @type_hints = type_hints
41   @consistency = consistency
42   @serial_consistency = serial_consistency
43   @page_size = page_size
44   @paging_state = paging_state
45   @names = names
46   @timestamp = timestamp
47   @payload = payload
48 end

Public Instance Methods

==(rq)
Alias for: eql?
append_flags(buffer,flags,protocol_version) click to toggle source
   # File lib/cassandra/protocol/requests/query_request.rb
54 def append_flags(buffer,flags,protocol_version)
55   if protocol_version < 5
56     buffer.append(flags.chr)
57   else
58     buffer.append_int(flags)
59   end
60 end
eql?(rq) click to toggle source
    # File lib/cassandra/protocol/requests/query_request.rb
 91 def eql?(rq)
 92   rq.is_a?(self.class) &&
 93     rq.cql == cql &&
 94     rq.values == values &&
 95     rq.type_hints == type_hints &&
 96     rq.consistency == consistency &&
 97     rq.serial_consistency == serial_consistency &&
 98     rq.page_size == page_size &&
 99     rq.paging_state == paging_state
100 end
Also aliased as: ==
hash() click to toggle source
    # File lib/cassandra/protocol/requests/query_request.rb
103 def hash
104   @h ||= begin
105     h = 17
106     h = 31 * h + @cql.hash
107     h = 31 * h + @values.hash
108     h = 31 * h + @type_hints.hash
109     h = 31 * h + @consistency.hash
110     h = 31 * h + @serial_consistency.hash
111     h = 31 * h + @page_size.hash
112     h = 31 * h + @paging_state.hash
113     h = 31 * h + @names.hash
114     h = 31 * h + @timestamp.hash
115     h
116   end
117 end
payload?() click to toggle source
   # File lib/cassandra/protocol/requests/query_request.rb
50 def payload?
51   !!@payload
52 end
to_s() click to toggle source
   # File lib/cassandra/protocol/requests/query_request.rb
87 def to_s
88   %(QUERY "#{@cql}" #{@consistency.to_s.upcase})
89 end
write(buffer, protocol_version, encoder) click to toggle source
   # File lib/cassandra/protocol/requests/query_request.rb
62 def write(buffer, protocol_version, encoder)
63   buffer.append_long_string(@cql)
64   buffer.append_consistency(@consistency)
65   if protocol_version > 1
66     flags  = 0
67     flags |= 0x04 if @page_size
68     flags |= 0x08 if @paging_state
69     flags |= 0x10 if @serial_consistency
70     flags |= 0x20 if protocol_version > 2 && @timestamp
71     if @values && !@values.empty?
72       flags |= 0x01
73       flags |= 0x40 if protocol_version > 2 && !@names.empty?
74       append_flags(buffer, flags, protocol_version)
75       encoder.write_parameters(buffer, @values, @type_hints, @names)
76     else
77       append_flags(buffer, flags, protocol_version)
78     end
79     buffer.append_int(@page_size) if @page_size
80     buffer.append_bytes(@paging_state) if @paging_state
81     buffer.append_consistency(@serial_consistency) if @serial_consistency
82     buffer.append_long(@timestamp) if protocol_version > 2 && @timestamp
83   end
84   buffer
85 end