File: //usr/lib/python3/dist-packages/twisted/internet/__pycache__/posixbase.cpython-312.pyc
�
�b�k � �� � d Z ddlZddlZddlZddlZddlZddlmZ ddlm Z m
Z
mZmZ ddl
mZmZmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZmZmZ ddlm Z m!Z! dd l"m#Z#m$Z$m%Z% dd
l&m'Z'm(Z( ejR d� Z* ejR d� Z+ dd
l,m-Z. e.Z- ddl
m0Z1 e1Z0e(dk( Z2dZ3e2rddl
m4Z4m5Z5m6Z6m7Z7 dZ3 e'jp � r ddl9Z9dZ3 G d� de
� Z: ee:� G d� de$jv � � Z< G d� de$jv � Z= ee:� G d� de=� � Z>e(dk( re>Z?ne<Z? G d� de=� Z@ G d� d� ZA eeee� G d� d eeAe� � ZB G d!� d"� ZC ee� G d#� d$eCeA� � ZDe-�e0� eeBe� e2r
eeBee� e3r eeBe� eEed%d� � eeBe� d gZFy# e/$ r dZ-Y ��-w xY w# e/$ r dZ0Y ��2w xY w# e/$ r dZ9Y ��w xY w)&z
Posix reactor base class
� N)�Sequence)� Attribute� Interface�classImplements�implementer)�error�tcp�udp)�ReactorBase�_SignalReactorMixin)
�IHalfCloseableDescriptor�
IReactorFDSet�IReactorMulticast�IReactorProcess�IReactorSocket�IReactorSSL�IReactorTCP�IReactorUDP�IReactorUNIX�IReactorUNIXDatagram)�CONNECTION_DONE�CONNECTION_LOST)�failure�log�util)�platform�platformTypezHandler has no fileno methodzFile descriptor lost)�tls)�ssl�posixF)�_signals�fdesc�process�unixTc �L � e Zd ZdZ ed� Zd� Zd� Zdej fd�Z
y)�_IWakeraQ
Interface to wake up the event loop based on the self-pipe trick.
The U{I{self-pipe trick}<http://cr.yp.to/docs/selfpipe.html>}, used to wake
up the main loop from another thread or a signal handler.
This is why we have wakeUp together with doRead
This is used by threads or signals to wake up the event loop.
� c � � y)z:
Called when the event should be wake up.
N� r) � �</usr/lib/python3/dist-packages/twisted/internet/posixbase.py�wakeUpz_IWaker.wakeUpW � � r* c � � y)zC
Read some data from my connection and discard it.
Nr) r) r* r+ �doReadz_IWaker.doRead\ r- r* �reasonc � � y)zB
Called when connection was closed and the pipes.
Nr) )r0 s r+ �connectionLostz_IWaker.connectionLosta r- r* N)�__name__�
__module__�__qualname__�__doc__r �disconnectedr, r/ r �Failurer2 r) r* r+ r&