%PDF- %PDF-
| Direktori : /opt/plesk/ruby/3.2.2/lib64/ruby/gems/3.2.0/gems/rbs-2.8.2/stdlib/socket/0/ |
| Current File : //opt/plesk/ruby/3.2.2/lib64/ruby/gems/3.2.0/gems/rbs-2.8.2/stdlib/socket/0/unix_socket.rbs |
# <!-- rdoc-file=ext/socket/unixsocket.c -->
# UNIXSocket represents a UNIX domain stream client socket.
#
class UNIXSocket < BasicSocket
# <!--
# rdoc-file=ext/socket/unixsocket.c
# - UNIXSocket.pair([type [, protocol]]) => [unixsocket1, unixsocket2]
# - UNIXSocket.socketpair([type [, protocol]]) => [unixsocket1, unixsocket2]
# -->
# Creates a pair of sockets connected to each other.
#
# *socktype* should be a socket type such as: :STREAM, :DGRAM, :RAW, etc.
#
# *protocol* should be a protocol defined in the domain. 0 is default protocol
# for the domain.
#
# s1, s2 = UNIXSocket.pair
# s1.send "a", 0
# s1.send "b", 0
# p s2.recv(10) #=> "ab"
#
def self.pair: (?Symbol socktype, ?Integer protocol) -> [ instance, instance ]
# <!--
# rdoc-file=ext/socket/unixsocket.c
# - UNIXSocket.pair([type [, protocol]]) => [unixsocket1, unixsocket2]
# - UNIXSocket.socketpair([type [, protocol]]) => [unixsocket1, unixsocket2]
# -->
# Creates a pair of sockets connected to each other.
#
# *socktype* should be a socket type such as: :STREAM, :DGRAM, :RAW, etc.
#
# *protocol* should be a protocol defined in the domain. 0 is default protocol
# for the domain.
#
# s1, s2 = UNIXSocket.pair
# s1.send "a", 0
# s1.send "b", 0
# p s2.recv(10) #=> "ab"
#
def self.socketpair: (?Symbol socktype, ?Integer protocol) -> [ instance, instance ]
public
# <!--
# rdoc-file=ext/socket/unixsocket.c
# - unixsocket.addr => [address_family, unix_path]
# -->
# Returns the local address as an array which contains address_family and
# unix_path.
#
# Example
# serv = UNIXServer.new("/tmp/sock")
# p serv.addr #=> ["AF_UNIX", "/tmp/sock"]
#
def addr: () -> [ String, String ]
# <!--
# rdoc-file=ext/socket/unixsocket.c
# - unixsocket.path => path
# -->
# Returns the path of the local address of unixsocket.
#
# s = UNIXServer.new("/tmp/sock")
# p s.path #=> "/tmp/sock"
#
def path: () -> String
# <!--
# rdoc-file=ext/socket/unixsocket.c
# - unixsocket.peeraddr => [address_family, unix_path]
# -->
# Returns the remote address as an array which contains address_family and
# unix_path.
#
# Example
# serv = UNIXServer.new("/tmp/sock")
# c = UNIXSocket.new("/tmp/sock")
# p c.peeraddr #=> ["AF_UNIX", "/tmp/sock"]
#
def peeraddr: () -> [ String, String ]
# <!--
# rdoc-file=ext/socket/unixsocket.c
# - unixsocket.recv_io([klass [, mode]]) => io
# -->
# Example
#
# UNIXServer.open("/tmp/sock") {|serv|
# UNIXSocket.open("/tmp/sock") {|c|
# s = serv.accept
#
# c.send_io STDOUT
# stdout = s.recv_io
#
# p STDOUT.fileno #=> 1
# p stdout.fileno #=> 7
#
# stdout.puts "hello" # outputs "hello\n" to standard output.
# }
# }
#
# *klass* will determine the class of *io* returned (using the IO.for_fd
# singleton method or similar). If *klass* is `nil`, an integer file descriptor
# is returned.
#
# *mode* is the same as the argument passed to IO.for_fd
#
def recv_io: (?singleton(BasicSocket), ?String mode) -> BasicSocket
# <!--
# rdoc-file=ext/socket/unixsocket.c
# - unixsocket.recvfrom(maxlen [, flags[, outbuf]]) => [mesg, unixaddress]
# -->
# Receives a message via *unixsocket*.
#
# *maxlen* is the maximum number of bytes to receive.
#
# *flags* should be a bitwise OR of Socket::MSG_* constants.
#
# *outbuf* will contain only the received data after the method call even if it
# is not empty at the beginning.
#
# s1 = Socket.new(:UNIX, :DGRAM, 0)
# s1_ai = Addrinfo.unix("/tmp/sock1")
# s1.bind(s1_ai)
#
# s2 = Socket.new(:UNIX, :DGRAM, 0)
# s2_ai = Addrinfo.unix("/tmp/sock2")
# s2.bind(s2_ai)
# s3 = UNIXSocket.for_fd(s2.fileno)
#
# s1.send "a", 0, s2_ai
# p s3.recvfrom(10) #=> ["a", ["AF_UNIX", "/tmp/sock1"]]
#
def recvfrom: (Integer maxlen, ?Integer flags, ?String outbuf) -> [ String, [ String, String ] ]
# <!--
# rdoc-file=ext/socket/unixsocket.c
# - unixsocket.send_io(io) => nil
# -->
# Sends *io* as file descriptor passing.
#
# s1, s2 = UNIXSocket.pair
#
# s1.send_io STDOUT
# stdout = s2.recv_io
#
# p STDOUT.fileno #=> 1
# p stdout.fileno #=> 6
#
# stdout.puts "hello" # outputs "hello\n" to standard output.
#
# *io* may be any kind of IO object or integer file descriptor.
#
def send_io: (BasicSocket | Integer) -> void
private
# <!--
# rdoc-file=ext/socket/unixsocket.c
# - UNIXSocket.new(path) => unixsocket
# -->
# Creates a new UNIX client socket connected to *path*.
#
# require 'socket'
#
# s = UNIXSocket.new("/tmp/sock")
# s.send "hello", 0
#
def initialize: (String path) -> untyped
end