summaryrefslogtreecommitdiff
path: root/src/lib/ecore_con/efl_net_socket.eo
blob: 90804f366c2989aa53488ec8e749dcb4a0daec43 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
interface @beta Efl.Net.Socket extends Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer {
    [[The basic socket interface.

      This is built upon the three core Input/Output interfaces:
        - @Efl.Io.Reader: to receive data.
        - @Efl.Io.Writer: to send data.
        - @Efl.Io.Closer: to close the socket for further operations.

      As such it can be used with utilities like @Efl.Io.Copier.

      @since 1.19
    ]]
    methods {
        @property address_local {
            [[The local address, similar to getsockname().

              The actual value depends on the type of socket, such as an
              IPv4 (ip:port) or IPv6 ([ip]:port) formatted for a
              TCP/UDP socket, the path if an Unix Local...

              It's always resolved. If operations are working
              with domain names or URLs, these are the values the kernel
              reports. It's similar to getsockname() in behavior.
            ]]
            get { }
            set @protected { }
            values {
                address: string; [[Local address]]
            }
        }

        @property address_remote {
            [[The remote address, similar to getpeername().

              The actual value depends on the type of socket, like an
              IPv4 (ip:port) or IPv6 ([ip]:port) formatted for a
              TCP/UDP socket, the path if an Unix Local...

              It's always resolved. If operations are working
              with domain names or URLs, these are the values the kernel
              reports. It's similar to getpeername() in behavior.
            ]]
            get { }
            set @protected { }
            values {
                address: string; [[Remote address]]
            }
        }
    }
}