3 \ ã@sRdZddddgZGdd„dƒZGdd„deƒZGdd„deƒZGdd„deƒZd S) zAbstract Protocol class.Ú BaseProtocolÚProtocolÚDatagramProtocolÚSubprocessProtocolc@s0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) ra Common base class for protocol interfaces. Usually user implements protocols that derived from BaseProtocol like Protocol or ProcessProtocol. The only case when BaseProtocol should be implemented directly is write-only transport like write pipe cCsdS)zðCalled when a connection is made. The argument is the transport representing the pipe connection. To receive data, wait for data_received() calls. When the connection is closed, connection_lost() is called. N©)ÚselfZ transportrrú!/usr/lib64/python3.6/protocols.pyÚconnection_madeszBaseProtocol.connection_madecCsdS)zÓCalled when the connection is lost or closed. The argument is an exception object or None (the latter meaning a regular EOF is received or the connection was aborted or closed). Nr)rÚexcrrrÚconnection_lostszBaseProtocol.connection_lostcCsdS)aCalled when the transport's buffer goes over the high-water mark. Pause and resume calls are paired -- pause_writing() is called once when the buffer goes strictly over the high-water mark (even if subsequent writes increases the buffer size even more), and eventually resume_writing() is called once when the buffer size reaches the low-water mark. Note that if the buffer size equals the high-water mark, pause_writing() is not called -- it must go strictly over. Conversely, resume_writing() is called when the buffer size is equal or lower than the low-water mark. These end conditions are important to ensure that things go as expected when either mark is zero. NOTE: This is the only Protocol callback that is not called through EventLoop.call_soon() -- if it were, it would have no effect when it's most needed (when the app keeps writing without yielding until pause_writing() is called). Nr)rrrrÚ pause_writing!szBaseProtocol.pause_writingcCsdS)zvCalled when the transport's buffer drains below the low-water mark. See pause_writing() for details. Nr)rrrrÚresume_writing7szBaseProtocol.resume_writingN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rr r r rrrrrs c@s eZdZdZdd„Zdd„ZdS)ranInterface for stream protocol. The user should implement this interface. They can inherit from this class but don't need to. The implementations here do nothing (they don't raise exceptions). When the user wants to requests a transport, they pass a protocol factory to a utility function (e.g., EventLoop.create_connection()). When the connection is made successfully, connection_made() is called with a suitable transport object. Then data_received() will be called 0 or more times with data (bytes) received from the transport; finally, connection_lost() will be called exactly once with either an exception object or None as an argument. State machine of calls: start -> CM [-> DR*] [-> ER?] -> CL -> end * CM: connection_made() * DR: data_received() * ER: eof_received() * CL: connection_lost() cCsdS)zTCalled when some data is received. The argument is a bytes object. Nr)rÚdatarrrÚ data_receivedXszProtocol.data_receivedcCsdS)z÷Called when the other end calls write_eof() or equivalent. If this returns a false value (including None), the transport will close itself. If it returns a true value, closing the transport is up to the protocol. Nr)rrrrÚ eof_received^szProtocol.eof_receivedN)r rrrrrrrrrr>sc@s eZdZdZdd„Zdd„ZdS)rz Interface for datagram protocol.cCsdS)z&Called when some datagram is received.Nr)rrZaddrrrrÚdatagram_receivedjsz"DatagramProtocol.datagram_receivedcCsdS)z~Called when a send or receive operation raises an OSError. (Other than BlockingIOError or InterruptedError.) Nr)rr rrrÚerror_receivedmszDatagramProtocol.error_receivedN)r rrrrrrrrrrgsc@s(eZdZdZdd„Zdd„Zdd„ZdS) rz,Interface for protocol for subprocess calls.cCsdS)zŠCalled when the subprocess writes data into stdout/stderr pipe. fd is int file descriptor. data is bytes object. Nr)rÚfdrrrrÚpipe_data_receivedwsz%SubprocessProtocol.pipe_data_receivedcCsdS)z“Called when a file descriptor associated with the child process is closed. fd is the int file descriptor that was closed. Nr)rrr rrrÚpipe_connection_lost~sz'SubprocessProtocol.pipe_connection_lostcCsdS)z"Called when subprocess has exited.Nr)rrrrÚprocess_exited…sz!SubprocessProtocol.process_exitedN)r rrrrrrrrrrrtsN)rÚ__all__rrrrrrrrÚs 7)