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::PACK_UINT64_BE, 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



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

def body_size
  decode_payload
  @body_size
end

#decode_payloadObject



170
171
172
173
174
175
176
177
178
179
180
# File 'lib/amq/protocol/frame.rb', line 170

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         = @payload.byteslice(4, 8).unpack1(PACK_UINT64_BE)
                         @data              = @payload.byteslice(12..-1)
                         @properties        = Basic.decode_properties(@data)
                       end
end

#final?Boolean

Returns:



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

def final?
  false
end

#klass_idObject



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

def klass_id
  decode_payload
  @klass_id
end

#propertiesObject



165
166
167
168
# File 'lib/amq/protocol/frame.rb', line 165

def properties
  decode_payload
  @properties
end

#weightObject



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

def weight
  decode_payload
  @weight
end