Class: Aerospike::ReadHeaderCommand

Inherits:
SingleCommand show all
Defined in:
lib/aerospike/command/read_header_command.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Command

#execute, #set_batch_exists, #set_batch_get, #set_delete, #set_exists, #set_operate, #set_read, #set_read_for_key_only, #set_read_header, #set_scan, #set_touch, #set_udf, #set_write

Constructor Details

#initialize(cluster, policy, key) ⇒ ReadHeaderCommand

Returns a new instance of ReadHeaderCommand.



28
29
30
31
32
33
34
# File 'lib/aerospike/command/read_header_command.rb', line 28

def initialize(cluster, policy, key)
  super(cluster, key)

  @policy = policy

  self
end

Instance Attribute Details

#recordObject (readonly)

Returns the value of attribute record.



26
27
28
# File 'lib/aerospike/command/read_header_command.rb', line 26

def record
  @record
end

Instance Method Details

#parse_resultObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/aerospike/command/read_header_command.rb', line 40

def parse_result
  # Read header.
  @conn.read(@data_buffer, MSG_TOTAL_HEADER_SIZE)

  result_code = @data_buffer.read(13).ord & 0xFF

  if result_code == 0
    generation = @data_buffer.read_int32(14)
    expiration = Aerospike.TTL(@data_buffer.read_int32(18))
    @record = Record.new(@node, @key, nil,  generation, expiration)
  else
    if result_code == Aerospike::ResultCode::KEY_NOT_FOUND_ERROR
      @record = nil
    else
      raise Aerospike::Exceptions::Aerospike.new(result_code)
    end
  end

  empty_socket
end

#write_bufferObject



36
37
38
# File 'lib/aerospike/command/read_header_command.rb', line 36

def write_buffer
  set_read_header(@policy, @key)
end