Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/aiohttp/__pycache__/web_runner.cpython-35.pyc



Z/ @sddlZddlZddlZddlmZmZddlmZdZGdd
d
e	Z
dd
ZGdddeZGdddeZ
GdddeZGdddeZGdddeZGdd	d	eZGdddeZdS)N)ABCabstractmethod)URLTCPSiteUnixSiteSockSite
BaseRunner	AppRunnerServerRunnerGracefulExitc@seZdZdZdS)rN)__name__
__module____qualname__coderr/web_runner.pyr
scCs
tdS)N)rrrrr_raise_graceful_exitsrc@sjeZdZdZdddd	d
ddd
ZeeddZeddZddZ	d	S)BaseSite_runner_shutdown_timeout_ssl_context_backlog_servershutdown_timeoutgN@ssl_contextNbacklogcCsL|jdkrtd||_||_||_||_d|_dS)Nz(Call runner.setup() before making a site)serverRuntimeErrorrrrrr)selfrunnerrrrrrr__init__s				zBaseSite.__init__cCsdS)Nr)r rrrname$sz
BaseSite.namecs|jj|dS)N)r	_reg_site)r rrrstart)szBaseSite.startcs|jj||jdkr3|jj|dS|jj|jjIdH|jjIdH|jjj|jIdH|jj|dS)N)	r_check_siter_unreg_sitecloseZwait_closedshutdownrr)r rrrstop-s
z
BaseSite.stop)rrrrr)
r
rr	__slots__r"propertyrr#r%r*rrrrrs	rcspeZdZdZddddddd	d
ddddfd
dZeddZfddZS)r_host_port_reuse_address_reuse_portNrgN@rrr
reuse_address
reuse_portc	s}tj|d|d|d||dkr4d}||_|dkr^|jrXdnd}||_||_||_dS)Nrrrz0.0.0.0i i)superr"r-rr.r/r0)	r r!hostportrrrr1r2)	__class__rrr"<s
			zTCPSite.__init__cCs=|jrdnd}ttjd|d|jd|jS)Nhttpshttpschemer4r5)rstrrbuildr-r.)r r9rrrr#KszTCPSite.namecsotjIdHtj}|j|jj|j|jd|j	d|j
d|jd|jIdH|_
dS)Nsslrr1r2)r3r%asyncioget_event_loop
create_serverrrr-r.rrr/r0r)r loop)r6rrr%Ps	z
TCPSite.start)r-r.r/r0)r
rrr+r"r,r#r%rr)r6rr9s	c	s^eZdZdZddddddfdd	Zed
dZfdd
ZS)r_pathrgN@rNrrcs/tj|d|d|d|||_dS)Nrrr)r3r"rA)r r!pathrrr)r6rrr"]s
zUnixSite.__init__cCs(|jrdnd}dj||jS)Nr7r8z
{}://unix:{}:)rformatrA)r r9rrrr#dsz
UnixSite.namecsWtjIdHtj}|j|jj|jd|jd|j	IdH|_
dS)Nr<r)r3r%r=r>Zcreate_unix_serverrrrArrr)r r@)r6rrr%is
zUnixSite.start)rA)r
rrr+r"r,r#r%rr)r6rrZsc	s^eZdZdZddddddfd	d
ZeddZfd
dZS)r_sock_namergN@rNrrc
stj|d|d|d|||_|jr:dnd}ttdr||jtjkr|dj||j	}n@|j	dd\}}	t
tjd	|d
|d|	}||_
dS)Nrrrr7r8AF_UNIXz
{}://unix:{}:r9r4r5)r3r"rDrhasattrsocketfamilyrFrCgetsocknamer:rr;rE)
r r!sockrrrr9r#r4r5)r6rrr"ts
	!$zSockSite.__init__cCs|jS)N)rE)r rrrr#sz
SockSite.namecsZtjIdHtj}|j|jjd|jd|jd|j	IdH|_
dS)NrLr<r)r3r%r=r>r?rrrDrrr)r r@)r6rrr%s
zSockSite.start)rDrE)r
rrr+r"r,r#r%rr)r6rrqsc@seZdZdZddddZed	d
ZeddZd
dZe	ddZ
ddZe	ddZe	ddZ
ddZddZddZdS)r_handle_signals_kwargsr_siteshandle_signalsFcKs+||_||_d|_t|_dS)N)rMrNrsetrO)r rPkwargsrrrr"s			zBaseRunner.__init__cCs|jS)N)r)r rrrrszBaseRunner.servercCs
t|jS)N)rQrO)r rrrsitesszBaseRunner.sitescsltj}|jrTy*|jtjt|jtjtWntk
rSYnX|j	IdH|_
dS)N)r=r>rMZadd_signal_handlersignalSIGINTrSIGTERMNotImplementedError_make_serverr)r r@rrrsetups	
zBaseRunner.setupcsdS)Nr)r rrrr)szBaseRunner.shutdowncstj}|jdkrdSx&t|jD]}|jIdHq/W|jIdHd|_|jry$|jt	j
|jt	jWntk
rYnXdS)N)
r=r>rlistrOr*_cleanup_serverrMZremove_signal_handlerrTrUrVrW)r r@siterrrcleanups		
zBaseRunner.cleanupcsdS)Nr)r rrrrXszBaseRunner._make_servercsdS)Nr)r rrrr[szBaseRunner._cleanup_servercCs;||jkr'tdj|||jj|dS)Nz*Site {} is already registered in runner {})rOrrCadd)r r\rrrr$s	zBaseRunner._reg_sitecCs+||jkr'tdj||dS)Nz&Site {} is not registered in runner {})rOrrC)r r\rrrr&s	zBaseRunner._check_sitecCs;||jkr'tdj|||jj|dS)Nz&Site {} is not registered in runner {})rOrrCremove)r r\rrrr's	zBaseRunner._unreg_siteN)rMrNrrO)r
rrr+r"r,rrSrYrr)r]rXr[r$r&r'rrrrrs
csXeZdZdZd
ZddfddZddZd	d
ZddZS)r
zLow-level web server runner_web_serverrPFcs#tjd||||_dS)NrP)r3r"r`)r Z
web_serverrPrR)r6rrr"szServerRunner.__init__csdS)Nr)r rrrr)szServerRunner.shutdowncs|jS)N)r`)r rrrrXszServerRunner._make_servercsdS)Nr)r rrrr[szServerRunner._cleanup_server)r`)	r
rr__doc__r+r"r)rXr[rr)r6rr
scsjeZdZdZdZddfddZeddZd	d
ZddZ	d
dZ
S)r	zWeb Application runner_apprPFcs#tjd||||_dS)NrP)r3r"rb)r apprPrR)r6rrr"szAppRunner.__init__cCs|jS)N)rb)r rrrrcsz
AppRunner.appcs|jjIdHdS)N)rbr))r rrrr)szAppRunner.shutdowncsdtj}|jj||jjj|jjIdH|jj|jjd||jS)Nr@)	r=r>rbZ	_set_loopZ
on_startupZfreezeZstartupZmake_handlerrN)r r@rrrrXs
zAppRunner._make_servercs|jjIdHdS)N)rbr])r rrrr[
szAppRunner._cleanup_server)rb)r
rrrar+r"r,rcr)rXr[rr)r6rr	s	)rrrrr	r
r)r=rTrIabcrrZyarlr__all__
SystemExitrrrrrrrr
r	rrrr<module>s$!S
Back to Directory File Manager