httpx/sig/io/tcp.rbs
HoneyryderChuck 8b2ee0b466 remove form, json, ,xml and body from the Options class
Options become a bunch of session and connection level parameters, and requests do not need to maintain a separate Options object when they contain a body anymore, instead, objects is shared with the session, while request-only parameters get passed downwards to the request and its body. This reduces allocations of Options, currently the heaviest object to manage.
2024-06-11 18:23:45 +01:00

61 lines
1.1 KiB
Plaintext

module HTTPX
class TCP
include Loggable
attr_reader ip: ipaddr?
attr_reader port: Integer
attr_reader addresses: Array[ipaddr]
attr_reader state: Symbol
attr_reader interests: io_interests
alias host ip
# TODO: lift when https://github.com/ruby/rbs/issues/1497 fixed
def initialize: (URI::Generic origin, Array[ipaddr]? addresses, Options options) ?{ (instance) -> void } -> void
def add_addresses: (Array[ipaddr] addrs) -> void
def to_io: () -> ::IO
def protocol: () -> String
def connect: () -> void
private
# :nocov:
def try_connect: () -> void
public
def read: (Integer size, ?(Buffer | String) buffer) -> (0 | nil | untyped)
def write: (Buffer buffer) -> Integer?
def close: () -> void
def connected?: () -> bool
def expired?: () -> boolish
def closed?: () -> bool
# :nocov:
def inspect: () -> ::String
private
def build_socket: () -> Socket
def transition: (Symbol nextstate) -> void
def do_transition: (Symbol nextstate) -> void
def log_transition_state: (Symbol nextstate) -> void
end
end