Class: Async::HTTP::Protocol::HTTP1::Connection
- Inherits:
-
HTTP::Protocol::HTTP1::Connection
- Object
- HTTP::Protocol::HTTP1::Connection
- Async::HTTP::Protocol::HTTP1::Connection
- Defined in:
- lib/async/http/protocol/http1/connection.rb
Instance Attribute Summary collapse
-
#count ⇒ Object
readonly
Returns the value of attribute count.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Instance Method Summary collapse
- #close ⇒ Object
-
#connected? ⇒ Boolean
Can we use this connection to make requests?.
-
#hijack ⇒ Async::Wrapper
The underlying non-blocking IO.
-
#initialize(stream, version) ⇒ Connection
constructor
A new instance of Connection.
- #multiplex ⇒ Object
- #peer ⇒ Object
- #read_chunked_body ⇒ Object
- #read_fixed_body(length) ⇒ Object
- #read_line ⇒ Object
- #read_remainder_body ⇒ Object
- #read_tunnel_body ⇒ Object
- #reusable? ⇒ Boolean
Constructor Details
#initialize(stream, version) ⇒ Connection
Returns a new instance of Connection.
34 35 36 37 38 |
# File 'lib/async/http/protocol/http1/connection.rb', line 34 def initialize(stream, version) super(stream) @version = version end |
Instance Attribute Details
#count ⇒ Object (readonly)
Returns the value of attribute count.
59 60 61 |
# File 'lib/async/http/protocol/http1/connection.rb', line 59 def count @count end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
40 41 42 |
# File 'lib/async/http/protocol/http1/connection.rb', line 40 def version @version end |
Instance Method Details
#close ⇒ Object
75 76 77 78 79 |
# File 'lib/async/http/protocol/http1/connection.rb', line 75 def close Async.logger.debug(self) {"Closing connection"} @stream.close end |
#connected? ⇒ Boolean
Can we use this connection to make requests?
66 67 68 |
# File 'lib/async/http/protocol/http1/connection.rb', line 66 def connected? @stream.connected? end |
#hijack ⇒ Async::Wrapper
Returns the underlying non-blocking IO.
47 48 49 50 51 52 53 |
# File 'lib/async/http/protocol/http1/connection.rb', line 47 def hijack @persistent = false @stream.flush return @stream.io end |
#multiplex ⇒ Object
61 62 63 |
# File 'lib/async/http/protocol/http1/connection.rb', line 61 def multiplex 1 end |
#peer ⇒ Object
55 56 57 |
# File 'lib/async/http/protocol/http1/connection.rb', line 55 def peer @stream.io end |
#read_chunked_body ⇒ Object
81 82 83 |
# File 'lib/async/http/protocol/http1/connection.rb', line 81 def read_chunked_body Body::Chunked.new(self) end |
#read_fixed_body(length) ⇒ Object
85 86 87 |
# File 'lib/async/http/protocol/http1/connection.rb', line 85 def read_fixed_body(length) Body::Fixed.new(@stream, length) end |
#read_line ⇒ Object
42 43 44 |
# File 'lib/async/http/protocol/http1/connection.rb', line 42 def read_line @stream.read_until(CRLF) or raise EOFError, "Could not read line" end |
#read_remainder_body ⇒ Object
93 94 95 |
# File 'lib/async/http/protocol/http1/connection.rb', line 93 def read_remainder_body Body::Remainder.new(@stream) end |
#read_tunnel_body ⇒ Object
89 90 91 |
# File 'lib/async/http/protocol/http1/connection.rb', line 89 def read_tunnel_body read_remainder_body end |
#reusable? ⇒ Boolean
70 71 72 73 |
# File 'lib/async/http/protocol/http1/connection.rb', line 70 def reusable? !@stream.closed? # !(self.closed? || @stream.closed?) end |