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