class Cassandra::Protocol::BatchRequest

Constants

COUNTER_TYPE
LOGGED_TYPE
PREPARED_KIND
QUERY_KIND
UNLOGGED_TYPE

Attributes

consistency[RW]
payload[R]
retries[RW]
timestamp[R]
type[R]

Public Class Methods

new(type, consistency, trace = false, serial_consistency = nil, timestamp = nil, payload = nil) click to toggle source
Calls superclass method Cassandra::Protocol::Request::new
   # File lib/cassandra/protocol/requests/batch_request.rb
29 def initialize(type,
30                consistency,
31                trace = false,
32                serial_consistency = nil,
33                timestamp = nil,
34                payload = nil)
35   super(0x0D, trace)
36   @type  = type
37   @parts = []
38   @consistency = consistency
39   @serial_consistency = serial_consistency
40   @timestamp = timestamp
41   @payload = payload
42 end

Public Instance Methods

add_prepared(id, values, types) click to toggle source
   # File lib/cassandra/protocol/requests/batch_request.rb
58 def add_prepared(id, values, types)
59   @parts << [:prepared, id, values, types]
60   nil
61 end
add_query(cql, values, types) click to toggle source
   # File lib/cassandra/protocol/requests/batch_request.rb
53 def add_query(cql, values, types)
54   @parts << [:simple, cql, values, types]
55   nil
56 end
clear() click to toggle source
   # File lib/cassandra/protocol/requests/batch_request.rb
48 def clear
49   @parts.clear
50   nil
51 end
payload?() click to toggle source
   # File lib/cassandra/protocol/requests/batch_request.rb
44 def payload?
45   !!@payload
46 end
to_s() click to toggle source
   # File lib/cassandra/protocol/requests/batch_request.rb
90 def to_s
91   type_str = case @type
92              when LOGGED_TYPE then 'LOGGED'
93              when UNLOGGED_TYPE then 'UNLOGGED'
94              when COUNTER_TYPE then 'COUNTER'
95              end
96   %(BATCH #{type_str} #{@parts.size} #{@consistency.to_s.upcase})
97 end
write(buffer, protocol_version, encoder) click to toggle source
   # File lib/cassandra/protocol/requests/batch_request.rb
63 def write(buffer, protocol_version, encoder)
64   buffer.append(@type.chr)
65   buffer.append_short(@parts.size)
66 
67   @parts.each do |(statement_kind, *arguments)|
68     __send__(:"write_#{statement_kind}",
69              buffer,
70              protocol_version,
71              encoder,
72              *arguments)
73   end
74 
75   buffer.append_consistency(@consistency)
76 
77   if protocol_version > 2
78     flags  = 0
79     flags |= 0x10 if @serial_consistency
80     flags |= 0x20 if @timestamp
81 
82     buffer.append(flags.chr)
83     buffer.append_consistency(@serial_consistency) if @serial_consistency
84     buffer.append_long(@timestamp) if @timestamp
85   end
86 
87   buffer
88 end

Private Instance Methods

write_prepared(buffer, protocol_version, encoder, id, values, types) click to toggle source
    # File lib/cassandra/protocol/requests/batch_request.rb
110 def write_prepared(buffer, protocol_version, encoder, id, values, types)
111   buffer.append(PREPARED_KIND)
112   buffer.append_short_bytes(id)
113   encoder.write_parameters(buffer, values, types)
114 end
write_simple(buffer, protocol_version, encoder, cql, values, types) click to toggle source
    # File lib/cassandra/protocol/requests/batch_request.rb
104 def write_simple(buffer, protocol_version, encoder, cql, values, types)
105   buffer.append(QUERY_KIND)
106   buffer.append_long_string(cql)
107   encoder.write_parameters(buffer, values, types)
108 end