Class: AMF::Pure::Response
- Inherits:
-
Object
- Object
- AMF::Pure::Response
- Includes:
- WriteIOHelpers
- Defined in:
- lib/amf/pure/remoting.rb
Overview
AMF response object wrapper, it is responsible for serializing the AMF response
Instance Attribute Summary collapse
-
#amf_version ⇒ Object
Returns the value of attribute amf_version.
-
#headers ⇒ Object
Returns the value of attribute headers.
-
#messages ⇒ Object
Returns the value of attribute messages.
Instance Method Summary collapse
-
#initialize ⇒ Response
constructor
A new instance of Response.
- #serialize ⇒ Object
Methods included from WriteIOHelpers
#byte_order, #byte_order_little?, #pack_double, #pack_int16_network, #pack_int8, #pack_integer, #pack_word32_network
Constructor Details
#initialize ⇒ Response
Returns a new instance of Response.
55 56 57 58 59 |
# File 'lib/amf/pure/remoting.rb', line 55 def initialize @amf_version = 0 @headers = [] @messages = [] end |
Instance Attribute Details
#amf_version ⇒ Object
Returns the value of attribute amf_version.
53 54 55 |
# File 'lib/amf/pure/remoting.rb', line 53 def amf_version @amf_version end |
#headers ⇒ Object
Returns the value of attribute headers.
53 54 55 |
# File 'lib/amf/pure/remoting.rb', line 53 def headers @headers end |
#messages ⇒ Object
Returns the value of attribute messages.
53 54 55 |
# File 'lib/amf/pure/remoting.rb', line 53 def @messages end |
Instance Method Details
#serialize ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/amf/pure/remoting.rb', line 61 def serialize stream = "" # Write version stream << pack_int16_network(@amf_version) # Write headers stream << pack_int16_network(@headers.length) # Header count @headers.each do |h| stream << pack_int16_network(h.name.length) stream << h.name stream << pack_int8(h.must_understand ? 1 : 0) stream << pack_word32_network(-1) stream << AMF.serialize(h.data, 0) end # Write messages stream << pack_int16_network(@messages.length) # Message count @messages.each do |m| stream << pack_int16_network(m.target_uri.length) stream << m.target_uri stream << pack_int16_network(m.response_uri.length) stream << m.response_uri stream << pack_word32_network(-1) stream << AMF0_AMF3_MARKER if @amf_version == 3 stream << AMF.serialize(m.data, @amf_version) end stream end |