Viewing File: /opt/alt/python35/lib64/python3.5/asyncio/__pycache__/proactor_events.cpython-35.opt-2.pyc



]N@sYdgZddlZddlZddlmZddlmZddlmZddlmZddlmZdd	lm	Z	dd
l
mZGddde	je	j
ZGd
ddee	jZGdddee	jZGdddeZGdddeee	jZGdddeee	jZGdddejZdS)BaseProactorEventLoopN)base_events)compat)	constants)futures)sslproto)
transports)loggercseZdZdddfddZddZddZdd	Zd
dZdd
ZddZ	e
jrddZdddZ
ddZddZddZS)_ProactorBasePipeTransportNcstj|||j|||_||_||_d|_d|_d|_d|_	d|_
d|_d|_|jdk	r|jj
|jj|jj||dk	r|jjtj|ddS)NrF)super__init__
_set_extra_sock	_protocol_server_buffer	_read_fut
_write_fut_pending_write
_conn_lost_closing_eof_writtenZ_attach_loop	call_soonZconnection_maderZ_set_result_unless_cancelled)selfloopsockprotocolwaiterextraserver)	__class__4/opt/alt/python35/lib64/python3.5/proactor_events.pyr
s$
										
z#_ProactorBasePipeTransport.__init__cCs|jjg}|jdkr.|jdn|jrD|jd|jdk	rm|jd|jj|jdk	r|jd|j|jdk	r|jd|j|jrt	|j}|jd||j
r|jddd	j|S)
Nclosedclosingzfd=%szread=%szwrite=%rzwrite_bufsize=%szEOF writtenz<%s> )r"__name__rappendrfilenorrrlenrjoin)rinfobufsizer#r#r$__repr__/s"	
		
z#_ProactorBasePipeTransport.__repr__cCs||jd<dS)Npipe)_extra)rrr#r#r$rBsz%_ProactorBasePipeTransport._set_extracCs
||_dS)N)r)rrr#r#r$set_protocolEsz'_ProactorBasePipeTransport.set_protocolcCs|jS)N)r)rr#r#r$get_protocolHsz'_ProactorBasePipeTransport.get_protocolcCs|jS)N)r)rr#r#r$
is_closingKsz%_ProactorBasePipeTransport.is_closingcCs}|jr
dSd|_|jd7_|jrT|jdkrT|jj|jd|jdk	ry|jjd|_dS)NTr)	rrrrrr_call_connection_lostrcancel)rr#r#r$closeNs		
z _ProactorBasePipeTransport.closecCs1|jdk	r-tjd|t|jdS)Nzunclosed transport %r)rwarningswarnResourceWarningr7)rr#r#r$__del__]sz"_ProactorBasePipeTransport.__del__zFatal error on pipe transportc	Csyt|tjr=|jjrhtjd||ddn+|jjd|d|d|d|ji|j	|dS)Nz%r: %sexc_infoTmessage	exceptionZ	transportr)

isinstancerZ_FATAL_ERROR_IGNOREr	get_debugr
debugcall_exception_handlerr_force_close)rexcr=r#r#r$_fatal_errorbs	z'_ProactorBasePipeTransport._fatal_errorcCs|jr
dSd|_|jd7_|jrD|jjd|_|jrc|jjd|_d|_d|_|jj|j	|dS)NTrr)
rrrr6rrrrrr5)rrDr#r#r$rCos			
		
			z'_ProactorBasePipeTransport._force_closecCsz|jj|Wdt|jdr<|jjtj|jjd|_|j}|dk	rz|j	d|_XdS)Nshutdown)
rZconnection_losthasattrrrFsocket	SHUT_RDWRr7rZ_detach)rrDr!r#r#r$r5~s
		
z0_ProactorBasePipeTransport._call_connection_lostcCs/|j}|jdk	r+|t|j7}|S)N)rrr+)rsizer#r#r$get_write_buffer_sizes	z0_ProactorBasePipeTransport.get_write_buffer_size)r(
__module____qualname__r
r/rr2r3r4r7rZPY34r;rErCr5rKr#r#)r"r$rs	
rcsReZdZdddfddZddZddZddd	ZS)
_ProactorReadPipeTransportNcs?tj||||||d|_|jj|jdS)NF)rr
_pausedrr
_loop_reading)rrrrrr r!)r"r#r$r
s	z#_ProactorReadPipeTransport.__init__cCsV|jrtd|jr*tdd|_|jjrRtjd|dS)Nz#Cannot pause_reading() when closingzAlready pausedTz%r pauses reading)rRuntimeErrorrOrr@r
rA)rr#r#r$
pause_readings			z(_ProactorReadPipeTransport.pause_readingcCsg|jstdd|_|jr+dS|jj|j|j|jjrctj	d|dS)Nz
Not pausedFz%r resumes reading)
rOrQrrrrPrr@r
rA)rr#r#r$resume_readings			z)_ProactorReadPipeTransport.resume_readingcCs|jr
dSd}zhyf|dk	r:d|_|j}|jrMd}dS|dkr]dS|jjj|jd|_Wntk
r}zC|js|j	|dn"|jj
rtjdddWYdd}~Xnt
k
r}z|j|WYdd}~Xnhtk
rF}z|j	|dWYdd}~Xn4tjk
rf|jsbYnX|jj|jWd|r|jj|nJ|dk	r|jj
rtjd||jj}|s|jXdS)Niz"Fatal read error on pipe transportz*Read error on pipe transport while closingr<Tz%r received EOF)rOrresultrr	_proactorrecvrConnectionAbortedErrorrEr@r
rAConnectionResetErrorrCOSErrorrCancelledErroradd_done_callbackrPrZ
data_receivedZeof_receivedr7)rfutdatarDZ	keep_openr#r#r$rPsF			"	"	z(_ProactorReadPipeTransport._loop_reading)r(rLrMr
rRrSrPr#r#)r"r$rNs
	
rNc@sReZdZddZddddZddZdd	Zd
dZdS)_ProactorBaseWritePipeTransportcCst|tttfs7dt|j}t||jrLtd|sVdS|j	r|j	t
jkr~tj
d|j	d7_	dS|jdkr|jdt|n?|jst||_|jn|jj||jdS)Nz3data argument must be a bytes-like object, not '%s'zwrite_eof() already calledzsocket.send() raised exception.rr^)r?bytes	bytearray
memoryviewtyper(	TypeErrorrrQrrZ!LOG_THRESHOLD_FOR_CONNLOST_WRITESr
warningr
_loop_writingr_maybe_pause_protocolextend)rr^msgr#r#r$writes(		
	
z%_ProactorBaseWritePipeTransport.writeNcCsnyd|_d|_|r%|j|dkrC|j}d|_|s|jrh|jj|jd|jr|j	j
tj|j
no|jjj|j	||_|jjst||_|jj|j|jn|jj|jWnftk
r5}z|j|WYdd}~Xn5tk
ri}z|j|dWYdd}~XnXdS)Nrz#Fatal write error on pipe transport)rrrUrrrrr5rrrFrHSHUT_WRZ_maybe_resume_protocolrVsenddoner+r\rfrgrYrCrZrE)rfr^rDr#r#r$rfs0		
				

z-_ProactorBaseWritePipeTransport._loop_writingcCsdS)NTr#)rr#r#r$
can_write_eof/sz-_ProactorBaseWritePipeTransport.can_write_eofcCs|jdS)N)r7)rr#r#r$	write_eof2sz)_ProactorBaseWritePipeTransport.write_eofcCs|jddS)N)rC)rr#r#r$abort5sz%_ProactorBaseWritePipeTransport.abort)r(rLrMrjrfrorprqr#r#r#r$r_s
$#r_cs.eZdZfddZddZS)_ProactorWritePipeTransportcsHtj|||jjj|jd|_|jj|jdS)N)	rr
rrVrWrrr\_pipe_closed)rargskw)r"r#r$r
:sz$_ProactorWritePipeTransport.__init__cCsV|jrdS|jrdSd|_|jdk	rH|jtn
|jdS)N)	cancelledrrrrCBrokenPipeErrorr7)rr]r#r#r$rt?s		z(_ProactorWritePipeTransport._pipe_closed)r(rLrMr
rtr#r#)r"r$rr9srrc@s(eZdZddZddZdS)_ProactorDuplexPipeTransportcCsdS)NFr#)rr#r#r$roTsz*_ProactorDuplexPipeTransport.can_write_eofcCs
tdS)N)NotImplementedError)rr#r#r$rpWsz&_ProactorDuplexPipeTransport.write_eofN)r(rLrMrorpr#r#r#r$ryOsryc@s4eZdZddZddZddZdS)_ProactorSocketTransportcCs||jd<y|j|jd<Wn@tjtfk
rf|jjrbtjd|ddYnXd|jkry|j	|jd<Wn@tjtfk
r|jjrtjd|ddYnXdS)NrHZsocknamezgetsockname() failed on %rr<Tpeernamezgetpeername() failed on %r)
r1getsocknamerHerrorAttributeErrorrr@r
regetpeername)rrr#r#r$r`s
		z#_ProactorSocketTransport._set_extracCsdS)NTr#)rr#r#r$ropsz&_ProactorSocketTransport.can_write_eofcCsE|js|jrdSd|_|jdkrA|jjtjdS)NT)rrrrrFrHrk)rr#r#r$rpss
	z"_ProactorSocketTransport.write_eofN)r(rLrMrrorpr#r#r#r$r{[sr{csNeZdZfddZdddddZdddddd	dd
dddZddd
dZddddZddddZfddZ	ddZ
ddZddZddZ
ddZdd Zd!d"Zdd#d$Zd%d&Zddd'd(d)Zd*d+Zd,d-Zd.d/ZS)0rcsbtjtjd|jj||_||_d|_i|_	|j
||jdS)NzUsing proactor: %s)rr
r
rAr"r(rV	_selector_self_reading_future_accept_futuresZset_loop_make_self_pipe)rZproactor)r"r#r$r
}s
				
zBaseProactorEventLoop.__init__NcCst||||||S)N)r{)rrrrr r!r#r#r$_make_socket_transportsz,BaseProactorEventLoop._make_socket_transportserver_sideFserver_hostnamer r!c
CsYtjstdtj||||||}	t|||	d|d||	jS)NzOProactor event loop requires Python 3.5 or newer (ssl.MemoryBIO) to support SSLr r!)rZ_is_sslproto_availablerzZSSLProtocolr{Z_app_transport)
rZrawsockr
sslcontextrrrr r!Zssl_protocolr#r#r$_make_ssl_transports
z)BaseProactorEventLoop._make_ssl_transportcCst|||||S)N)ry)rrrrr r#r#r$_make_duplex_pipe_transportsz1BaseProactorEventLoop._make_duplex_pipe_transportcCst|||||S)N)rN)rrrrr r#r#r$_make_read_pipe_transportsz/BaseProactorEventLoop._make_read_pipe_transportcCst|||||S)N)rr)rrrrr r#r#r$_make_write_pipe_transportsz0BaseProactorEventLoop._make_write_pipe_transportcsl|jrtd|jr(dS|j|j|jjd|_d|_tjdS)Nz!Cannot close a running event loop)	Z
is_runningrQ	is_closed_stop_accept_futures_close_self_piperVr7rr)r)r"r#r$r7s


		zBaseProactorEventLoop.closecCs|jj||S)N)rVrW)rrnr#r#r$	sock_recvszBaseProactorEventLoop.sock_recvcCs|jj||S)N)rVrl)rrr^r#r#r$sock_sendallsz"BaseProactorEventLoop.sock_sendallcCs|jj||S)N)rVconnect)rraddressr#r#r$sock_connectsz"BaseProactorEventLoop.sock_connectcCs|jj|S)N)rVaccept)rrr#r#r$sock_acceptsz!BaseProactorEventLoop.sock_acceptcCs
tdS)N)rz)rr#r#r$_socketpairsz!BaseProactorEventLoop._socketpaircCsd|jdk	r%|jjd|_|jjd|_|jjd|_|jd8_dS)Nr)rr6_ssockr7_csock
_internal_fds)rr#r#r$rs
	
	
	z&BaseProactorEventLoop._close_self_pipecCs[|j\|_|_|jjd|jjd|jd7_|j|jdS)NFr)rrrsetblockingrr_loop_self_reading)rr#r#r$rs
z%BaseProactorEventLoop._make_self_pipecCsy2|dk	r|j|jj|jd}Wn\tjk
rMdSYn]tk
r}z$|jddd|d|iWYdd}~XnX||_|j	|j
dS)Nir=z.Error on reading from the event loop self piper>r)rUrVrWrrr[	ExceptionrBrr\r)rrnrDr#r#r$rs
 	z(BaseProactorEventLoop._loop_self_readingcCs|jjddS)Ns)rrl)rr#r#r$_write_to_selfsz$BaseProactorEventLoop._write_to_selfdcs5dfddjdS)Ncsy|dk	r|j\}}jr@tjd||}dk	rj||dddd|idn"j||dd|idjrdSjj}Wnt	k
rL}zbj
dkrjdd	d
|dijnjr:tjdd
dWYdd}~Xn?t
jk
rjjYn!X|jj
<|jdS)Nz#%r got a new connection from %r: %rrTr r|r!rr=zAccept failed on a socketr>rHzAccept failed on socket %rr<)rUZ_debugr
rArrrrVrrZr*rBr7rr[rr\)rnconnaddrrrD)rprotocol_factoryrr!rrr#r$rs>		
		

		z2BaseProactorEventLoop._start_serving.<locals>.loop)r)rrrrr!backlogr#)rrrr!rrr$_start_servings$$z$BaseProactorEventLoop._start_servingcCsdS)Nr#)rZ
event_listr#r#r$_process_eventssz%BaseProactorEventLoop._process_eventscCs5x!|jjD]}|jqW|jjdS)N)rvaluesr6clear)rfuturer#r#r$rsz*BaseProactorEventLoop._stop_accept_futurescCs(|j|jj||jdS)N)rrV
_stop_servingr7)rrr#r#r$r#s
z#BaseProactorEventLoop._stop_serving)r(rLrMr
rrrrrr7rrrrrrrrrrrrrr#r#)r"r$r{s4

()__all__rHr8rrrrrr	logr
Z_FlowControlMixinZ
BaseTransportrZ
ReadTransportrNZWriteTransportr_rrZ	Transportryr{Z
BaseEventLooprr#r#r#r$<module>s.	MT

Back to Directory File Manager