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



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

def body_size
  decode_payload
  @body_size
end

#decode_payloadObject



135
136
137
138
139
140
141
142
143
144
145
# File 'lib/amq/protocol/frame.rb', line 135

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)


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

def final?
  false
end

#klass_idObject



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

def klass_id
  decode_payload
  @klass_id
end

#propertiesObject



130
131
132
133
# File 'lib/amq/protocol/frame.rb', line 130

def properties
  decode_payload
  @properties
end

#weightObject



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

def weight
  decode_payload
  @weight
end