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, encode_to_array, encoded_payload, #final?, find_type

Constructor Details

#initialize(payload, channel) ⇒ FrameSubclass

Returns a new instance of FrameSubclass.



90
91
92
# File 'lib/amq/protocol/frame.rb', line 90

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

Instance Attribute Details

#channelObject

Returns the value of attribute channel.



88
89
90
# File 'lib/amq/protocol/frame.rb', line 88

def channel
  @channel
end

#payloadObject (readonly)

Returns the value of attribute payload.



89
90
91
# File 'lib/amq/protocol/frame.rb', line 89

def payload
  @payload
end

Class Method Details

.encode(payload, channel) ⇒ Object



84
85
86
# File 'lib/amq/protocol/frame.rb', line 84

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

.idObject



80
81
82
# File 'lib/amq/protocol/frame.rb', line 80

def self.id
  @id
end

Instance Method Details

#encodeObject



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

def encode
  encode_to_array.join
end

#encode_to_arrayObject



98
99
100
101
102
103
104
# File 'lib/amq/protocol/frame.rb', line 98

def encode_to_array
  components = []
  components << [self.class.id, @channel, self.size].pack(PACK_CHAR_UINT16_UINT32)
  components << self.class.encoded_payload(@payload)
  components << FINAL_OCTET
  components
end

#sizeObject



94
95
96
# File 'lib/amq/protocol/frame.rb', line 94

def size
  @payload.bytesize
end