summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/uvloop/handles/handle.pxd
blob: 5af1c14cfcedbae283422797dfc7b1f1eb97af60 (plain)
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
cdef class UVHandle:
    cdef:
        uv.uv_handle_t *_handle
        Loop _loop
        readonly _source_traceback
        bint _closed
        bint _inited
        object context

        # Added to enable current UDPTransport implementation,
        # which doesn't use libuv handles.
        bint _has_handle

    # All "inline" methods are final

    cdef inline _start_init(self, Loop loop)
    cdef inline _abort_init(self)
    cdef inline _finish_init(self)

    cdef inline bint _is_alive(self)
    cdef inline _ensure_alive(self)

    cdef _error(self, exc, throw)
    cdef _fatal_error(self, exc, throw, reason=?)

    cdef _warn_unclosed(self)

    cdef _free(self)
    cdef _close(self)


cdef class UVSocketHandle(UVHandle):
    cdef:
        # Points to a Python file-object that should be closed
        # when the transport is closing.  Used by pipes.  This
        # should probably be refactored somehow.
        object _fileobj
        object __cached_socket

    # All "inline" methods are final

    cdef _fileno(self)

    cdef _new_socket(self)
    cdef inline _get_socket(self)
    cdef inline _attach_fileobj(self, object file)

    cdef _open(self, int sockfd)