class DataFrame
DATA frames convey arbitrary, variable-length sequences of octets associated with a stream. One or more DATA frames are used, for instance, to carry HTTP request or response payloads.
DATA frames MAY also contain padding. Padding can be added to DATA frames to obscure the size of messages.
+---------------+ |Pad Length? (8)| +---------------+-----------------------------------------------+ | Data () ... +---------------------------------------------------------------+ | Padding () ... +---------------------------------------------------------------+
Definitions
def end_stream?
Check if this frame marks the end of the stream.
Signature
-
returns
Boolean True if the END_STREAM flag is set.
Implementation
def end_stream?
flag_set?(END_STREAM)
end
def pack(data, *arguments, **options)
Pack data into the frame, handling empty data as stream end.
Signature
-
parameter
dataString | Nil The data to pack into the frame.
-
parameter
argumentsArray Additional arguments passed to super.
-
parameter
optionsHash Additional options passed to super.
Implementation
def pack(data, *arguments, **options)
if data
super
else
@length = 0
set_flags(END_STREAM)
end
end
def apply(connection)
Apply this DATA frame to a connection for processing.
Signature
-
parameter
connectionConnection The connection to apply the frame to.
Implementation
def apply(connection)
connection.receive_data(self)
end
def inspect
Provide a readable representation of the frame for debugging.
Signature
-
returns
String A formatted string representation of the frame.
Implementation
def inspect
"\#<#{self.class} stream_id=#{@stream_id} flags=#{@flags} #{@length || 0}b>"
end