6.96. kink/socket/UNIX_DOMAIN_SOCKET_PATH

6.96.1. unix_domain_socket_path型

unix_domain_socket_pathは、UNIXドメインソケットのパスを表す。

unix_domain_socket_pathはsocket_addressの部分型である。

:UNIX_DOMAIN_SOCKET_PATH.require_from('kink/socket/')
:PROTOCOL_FAMILY.require_from('kink/socket/')
:TCP.require_from('kink/socket/')
:TCP_SERVER.require_from('kink/socket/')
:BIN.require_from('kink/')
:CONTROL.require_from('kink/')

:Udsp <- UNIX_DOMAIN_SOCKET_PATH.new('foo.uds')

:spawn_client <- {
  CONTROL.with_finally{(:finally)
    :Tcp = TCP.open(PROTOCOL_FAMILY.unix)
    finally{ Tcp.close }

    Tcp.connect(Udsp)
    :Out = Tcp.output
    finally{ Out.close }

    Out.write(BIN.of(1 2 3))
  }
}

CONTROL.with_finally{(:finally)
  :Serv = TCP_SERVER.open(PROTOCOL_FAMILY.unix)
  finally{ Serv.close }

  Serv.bind_listen(Udsp)
  spawn_client
  :Tcp = Serv.accept
  finally{ Tcp.close }

  :In = Tcp.input
  finally{ In.close }

  :Bin = In.read_all
  stdout.print_line(Bin.repr) # => (bin 0x01 0x02 0x03)
}

6.96.1.1. Udsp.path

pathは、UNIXドメインソケットのファイルシステム上のパスを、str値で戻す。

6.96.1.2. Udsp.protocol_family

protocol_familyは、PROTOCOL_FAMILY.unixを戻す。

6.96.1.3. Udsp == Addr

== 演算子、つまりop_eqメソッドは、Addrがunix_domain_socket_pathの値であり、UdspとAddrのパスがstr型の == 演算子で等しい場合、またその場合に限ってtrueを戻す。

事前条件

Addrはsocket_addressでなければならない。

6.96.2. UNIX_DOMAIN_SOCKET_PATH.new(Path)

newはunix_domain_socket_pathを戻す。

事前条件

Pathはstrでなければならない。

6.96.3. UNIX_DOMAIN_SOCKET_PATH.is?(Val)

is?はValがunix_domain_socket_pathの値であるかどうかを戻す。