Class: AMQ::Protocol::FrameSubclass

Inherits:
Frame
  • Object
show all
Defined in:
lib/amq/protocol/frame.rb

Direct Known Subclasses

BodyFrame, HeaderFrame, HeartbeatFrame, MethodFrame

Constant Summary

Constants inherited from Frame

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Frame

#__new__, decode, decode_header, find_type

Constructor Details

#initialize(payload, channel) ⇒ FrameSubclass

Returns a new instance of FrameSubclass.



70
71
72
# File 'lib/amq/protocol/frame.rb', line 70

def initialize(payload, channel)
  @payload, @channel = payload, channel
end

Instance Attribute Details

#channelObject

Returns the value of attribute channel.



68
69
70
# File 'lib/amq/protocol/frame.rb', line 68

def channel
  @channel
end

#payloadObject (readonly)

Returns the value of attribute payload.



69
70
71
# File 'lib/amq/protocol/frame.rb', line 69

def payload
  @payload
end

Class Method Details

.encode(payload, channel) ⇒ Object



64
65
66
# File 'lib/amq/protocol/frame.rb', line 64

def self.encode(payload, channel)
  super(@id, payload, channel)
end

.idObject



60
61
62
# File 'lib/amq/protocol/frame.rb', line 60

def self.id
  @id
end

Instance Method Details

#encodeObject



78
79
80
# File 'lib/amq/protocol/frame.rb', line 78

def encode
  [self.class.id, @channel, self.size].pack(PACK_CHAR_UINT16_UINT32) + @payload.bytes.to_a.pack(SIMPLE_BYTE_PACK) + FINAL_OCTET
end

#sizeObject



74
75
76
# File 'lib/amq/protocol/frame.rb', line 74

def size
  @payload.bytesize
end