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, id, #initialize, #size

Methods inherited from Frame

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

Constructor Details

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

Instance Method Details

#body_sizeObject



110
111
112
113
# File 'lib/amq/protocol/frame.rb', line 110

def body_size
  decode_payload
  @body_size
end

#decode_payloadObject



130
131
132
133
134
135
136
137
138
139
140
# File 'lib/amq/protocol/frame.rb', line 130

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_64_big_endian(@payload[4..11]).first
    @data              = @payload[12..-1]
    @properties        = Basic.decode_properties(@data)
  end
end

#final?Boolean

Returns:

  • (Boolean)


106
107
108
# File 'lib/amq/protocol/frame.rb', line 106

def final?
  false
end

#klass_idObject



120
121
122
123
# File 'lib/amq/protocol/frame.rb', line 120

def klass_id
  decode_payload
  @klass_id
end

#propertiesObject



125
126
127
128
# File 'lib/amq/protocol/frame.rb', line 125

def properties
  decode_payload
  @properties
end

#weightObject



115
116
117
118
# File 'lib/amq/protocol/frame.rb', line 115

def weight
  decode_payload
  @weight
end