Class: AMQ::Protocol::HeaderFrame

Inherits:
FrameSubclass show all
Defined in:
lib/amq/protocol/frame.rb

Constant Summary

Constants inherited from Frame

Frame::CHANNEL_RANGE, Frame::CLASSES, Frame::FINAL_OCTET, Frame::TYPES, Frame::TYPES_OPTIONS, Frame::TYPES_REVERSE

Instance Attribute Summary

Attributes inherited from FrameSubclass

#channel, #payload

Instance Method Summary collapse

Methods inherited from FrameSubclass

#encode, encode, #encode_to_array, id, #initialize, #size

Methods inherited from Frame

#__new__, decode, decode_header, encode, encode_to_array, encoded_payload, find_type, new

Constructor Details

This class inherits a constructor from AMQ::Protocol::FrameSubclass

Instance Method Details

#body_sizeObject



144
145
146
147
# File 'lib/amq/protocol/frame.rb', line 144

def body_size
  decode_payload
  @body_size
end

#decode_payloadObject



164
165
166
167
168
169
170
171
172
173
174
# File 'lib/amq/protocol/frame.rb', line 164

def decode_payload
  @decoded_payload ||= begin
                         @klass_id, @weight = @payload.unpack(PACK_UINT16_X2)
                         # the total size of the content body, that is, the sum of the body sizes for the
                         # following content body frames. Zero indicates that there are no content body frames.
                         # So this is NOT related to this very header frame!
                         @body_size         = AMQ::Hacks.unpack_uint64_big_endian(@payload[4..11]).first
                         @data              = @payload[12..-1]
                         @properties        = Basic.decode_properties(@data)
                       end
end

#final?Boolean

Returns:

  • (Boolean)


140
141
142
# File 'lib/amq/protocol/frame.rb', line 140

def final?
  false
end

#klass_idObject



154
155
156
157
# File 'lib/amq/protocol/frame.rb', line 154

def klass_id
  decode_payload
  @klass_id
end

#propertiesObject



159
160
161
162
# File 'lib/amq/protocol/frame.rb', line 159

def properties
  decode_payload
  @properties
end

#weightObject



149
150
151
152
# File 'lib/amq/protocol/frame.rb', line 149

def weight
  decode_payload
  @weight
end