Class: Aerospike::TouchCommand
- Inherits:
-
SingleCommand
- Object
- Command
- SingleCommand
- Aerospike::TouchCommand
- Defined in:
- lib/aerospike/command/touch_command.rb
Overview
:nodoc:
Instance Method Summary collapse
- #get_node ⇒ Object
-
#initialize(cluster, policy, key) ⇒ TouchCommand
constructor
A new instance of TouchCommand.
- #parse_result ⇒ Object
- #write_buffer ⇒ Object
Methods inherited from Command
#execute, #set_delete, #set_exists, #set_operate, #set_query, #set_read, #set_read_for_key_only, #set_read_header, #set_scan, #set_touch, #set_udf, #set_write, #write_bins
Constructor Details
#initialize(cluster, policy, key) ⇒ TouchCommand
Returns a new instance of TouchCommand.
25 26 27 28 29 30 31 |
# File 'lib/aerospike/command/touch_command.rb', line 25 def initialize(cluster, policy, key) super(cluster, key) @policy = policy self end |
Instance Method Details
#get_node ⇒ Object
33 34 35 |
# File 'lib/aerospike/command/touch_command.rb', line 33 def get_node @cluster.master_node(@partition) end |
#parse_result ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/aerospike/command/touch_command.rb', line 41 def parse_result # Read header. begin @conn.read(@data_buffer, 8) rescue => e Aerospike.logger.error("parse result error: #{e}") raise e end # inflate if compressed compressed_sz = compressed_size if compressed_sz begin #waste 8 size bytes @conn.read(@data_buffer, 8) # read compressed message @conn.read(@data_buffer, sz - 8) # inflate the results # TODO: reuse the current buffer uncompressed = Zlib::inflate(@data_buffer.buf) @data_buffer = Buffer.new(-1, uncompressed) rescue => e Aerospike.logger.error("parse result error: #{e}") raise e end else begin bytes_read = @conn.read(@data_buffer, MSG_TOTAL_HEADER_SIZE - 8, 8) rescue => e Aerospike.logger.error("parse result error: #{e}") raise e end end result_code = @data_buffer.read(13).ord & 0xFF return if result_code == 0 if result_code == Aerospike::ResultCode::FILTERED_OUT if @policy.fail_on_filtered_out raise Aerospike::Exceptions::Aerospike.new(result_code) end return end raise Aerospike::Exceptions::Aerospike.new(result_code) end |
#write_buffer ⇒ Object
37 38 39 |
# File 'lib/aerospike/command/touch_command.rb', line 37 def write_buffer set_touch(@policy, @key) end |