Class: AMQ::Protocol::Basic::Nack

Inherits:
Method
  • Object
show all
Defined in:
lib/amq/protocol/client.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Method

encode_body, index, inherited, instantiate, method_id, methods, name, split_headers

Constructor Details

#initialize(delivery_tag, multiple, requeue) ⇒ Nack

Returns a new instance of Nack.



2150
2151
2152
2153
2154
# File 'lib/amq/protocol/client.rb', line 2150

def initialize(delivery_tag, multiple, requeue)
  @delivery_tag = delivery_tag
  @multiple = multiple
  @requeue = requeue
end

Instance Attribute Details

#delivery_tagObject (readonly)

Returns the value of attribute delivery_tag.



2149
2150
2151
# File 'lib/amq/protocol/client.rb', line 2149

def delivery_tag
  @delivery_tag
end

#multipleObject (readonly)

Returns the value of attribute multiple.



2149
2150
2151
# File 'lib/amq/protocol/client.rb', line 2149

def multiple
  @multiple
end

#requeueObject (readonly)

Returns the value of attribute requeue.



2149
2150
2151
# File 'lib/amq/protocol/client.rb', line 2149

def requeue
  @requeue
end

Class Method Details

.decode(data) ⇒ Object

Optimized decode using unpack1 and getbyte

Returns:



2141
2142
2143
2144
2145
2146
2147
# File 'lib/amq/protocol/client.rb', line 2141

def self.decode(data)
  delivery_tag = data.byteslice(0, 8).unpack1(PACK_UINT64_BE)
  bit_buffer = data.getbyte(8)
  multiple = (bit_buffer & 1) != 0
  requeue = (bit_buffer & 2) != 0
  self.new(delivery_tag, multiple, requeue)
end

.encode(channel, delivery_tag, multiple, requeue) ⇒ Object

u’delivery_tag = false’, u’multiple = false’, u’requeue = true’

Returns:



2162
2163
2164
2165
2166
2167
2168
2169
2170
# File 'lib/amq/protocol/client.rb', line 2162

def self.encode(channel, delivery_tag, multiple, requeue)
  buffer = @packed_indexes.dup
  buffer << AMQ::Pack.pack_uint64_big_endian(delivery_tag)
  bit_buffer = 0
  bit_buffer = bit_buffer | (1 << 0) if multiple
  bit_buffer = bit_buffer | (1 << 1) if requeue
  buffer << [bit_buffer].pack(PACK_CHAR)
  MethodFrame.new(buffer, channel)
end

.has_content?Boolean

Returns:

  • (Boolean)


2156
2157
2158
# File 'lib/amq/protocol/client.rb', line 2156

def self.has_content?
  false
end