
    <|h?                        d dl mZmZ d dlZd dlmZ g Zej                  Zej                  Z	 e
e	d      rGej                  j                  d      sJ d       e	j                  Ze	j                  Ze	j                  Znd xZxZZdZe	j"                  d	fe	j$                  d
fe	j&                  dfe	j(                  dfe	j*                  dfe	j,                  dfe	j.                  dfe	j0                  dfe	j2                  dfe	j4                  dfe	j6                  dfe	j8                  dfe	j:                  dfe	j<                  dfe	j>                  dfe	j@                  dfgZ!d dl"m#Z$ d Z% G d de$jF                        Z# G d de$jL                  e#      Z' G d d e$jP                  e#      Z) G d! d"e$jT                  e#      Z+ G d# d$e$jX                  e#      Z- G d% d&e$j\                  e#      Z/ G d' d(e$j`                  e#      Z1 G d) d*e$jd                  e#      Z3 G d+ d,e$jh                  e#      Z5e5 e6       d-<    G d. d/e7      Z8 G d0 d1e$jr                  e#      Z: G d2 d3e$jv                  e#      Z<y)4    )absolute_importprint_functionN)	_corecffivfd_openwinz$vfd functions only needed on windowsc                     | S N )fds    S/var/www/html/test/engine/venv/lib/python3.12/site-packages/gevent/libev/watcher.py<lambda>r      s    r     r
   READWRITE_IOFDSETPERIODICSIGNALCHILDSTATIDLEPREPARECHECKEMBEDFORKCLEANUPASYNCCUSTOMERROR)watcherc                 6    t        j                  | t              S r	   )_baseevents_to_str_events)eventss    r   _events_to_strr%   9   s    vw//r   c                        e Zd ZeZeZdZdZdde	j                  f fd	Zd Zd Zd Zd	 Zd
 Zd Zd Z eee      Zd Ze	j,                  d        Z eee      Zd Zed        Z xZS )r   evr   TNc                 V    |rd| _         nd| _         t        t        |   ||||       y )Nr      )refpriorityargs)_flagssuperr   __init__)self_loopr*   r+   r,   	__class__s        r   r/   zwatcher.__init__I   s,    DKDKgt%exd%Sr   c                 D    t         j                  | j                  |       y r	   libevev_set_priority_watcherr0   r+   s     r   _watcher_ffi_set_priorityz!watcher._watcher_ffi_set_priorityQ   s    dmmX6r   c                 T     | j                   | j                  | j                  g|  y r	   )_watcher_initr7   _watcher_callback)r0   r,   s     r   _watcher_ffi_initzwatcher._watcher_ffi_initT   s)    4==11	" 	"r   c                 d    | j                  | j                  j                  | j                         y r	   )_watcher_startloop_ptrr7   r0   s    r   _watcher_ffi_startzwatcher._watcher_ffi_startY   s    DIINNDMM:r   c                     | j                   dz  r0| j                  j                          | xj                   dz  c_         y y )N   )r-   r@   r*   rB   s    r   _watcher_ffi_refzwatcher._watcher_ffi_ref\   s-    ;;?IIMMOKK2K r   c                     | j                   dz  dk(  r0| j                  j                          | xj                   dz  c_         y y )N   r)   rE   )r-   r@   unrefrB   s    r   _watcher_ffi_unrefzwatcher._watcher_ffi_unrefa   s3    ;;?aIIOOKK1K  r   c                 "    | j                   dz   S )Nr)   )r-   rB   s    r   _get_refzwatcher._get_refg   s    ;;?""r   c                    |rO| j                   dz  sy | j                   dz  r| j                  j                          | xj                   dz  c_         y | j                   dz  ry | xj                   dz  c_         | j                   dz  sPt        j	                  | j
                        r0| j                  j                          | xj                   dz  c_         y y y )Nr)   rE   i)r-   r@   r*   r5   ev_is_activer7   rJ   r0   values     r   _set_refzwatcher._set_refj   s    ;;?{{Q		KK2K{{QKK1K;;?u'9'9$--'H 		!q 	 (I?r   c                 @    t         j                  | j                        S r	   )r5   ev_priorityr7   rB   s    r   _get_priorityzwatcher._get_priority~   s      //r   c                 D    t         j                  | j                  |       y r	   r4   r8   s     r   _set_priorityzwatcher._set_priority   s    dmmX6r   c                 f   || _         |xs t        | _        | j                  dz  dk(  r/| j                  j                          | xj                  dz  c_        t        j                  | j                  j                  | j                  |       | j                  dz  s| xj                  dz  c_        y y )NrI   r)   rE      )
callback_NOARGSr,   r-   r@   rJ   r5   ev_feed_eventrA   r7   )r0   reventsrZ   r,   s       r   feedzwatcher.feed   s|     OG	;;?aIIOOKK1KDIINNDMM7C{{QKK1K r   c                 n    t        | j                  xr t        j                  | j                              S r	   )boolr7   r5   ev_is_pendingrB   s    r   pendingzwatcher.pending   s%    DMMHe&9&9$--&HIIr   )__name__
__module____qualname__ffi_FFIr5   _LIB_watcher_prefixr-   r!   r[   r/   r9   r=   rC   rG   rK   rM   rR   propertyr*   rU   not_while_activerW   r+   r^   rb   __classcell__r2   s   @r   r   r   >   s    DDO F"&EMM T7"
;
#!" 8X
&C0 7 7 }5H	 J Jr   r   c                       e Zd Zej                  ej
                  z  ej                  z  Zd Ze	j                  d        Z eee      Zd Ze	j                  d        Z eee      Zed        Zd Zy)ioc                 @    t        | j                  j                        S r	   )vfd_getr7   r   rB   s    r   _get_fdz
io._get_fd   s    t}}''((r   c                     t        |      }t        | j                  j                         | j	                  | j                  | j
                  || j                  j                         y r	   )r   vfd_freer7   r   r;   r<   r$   )r0   r   vfds      r   _set_fdz
io._set_fd   sE    rl!!"4==$*@*@#t}}G[G[\r   c                 .    | j                   j                  S r	   )r7   r$   rB   s    r   _get_eventszio._get_events   s    }}###r   c                 |    | j                  | j                  | j                  | j                  j                  |       y r	   )r;   r7   r<   r   )r0   r$   s     r   _set_eventszio._set_events   s+    4==$*@*@$--BRBRTZ[r   c                 @    t        | j                  j                        S r	   )r%   r7   r$   rB   s    r   
events_strzio.events_str   s    dmm2233r   c                 :    d| j                   d| j                  S )Nz fd=z events=)r   r|   rB   s    r   _formatz
io._format   s    %)WWdoo>>r   N)rc   rd   re   r5   EV__IOFDSETEV_READEV_WRITE
EVENT_MASKrr   r!   rk   rv   rj   r   rx   rz   r$   r|   r~   r
   r   r   ro   ro      s    ""U]]2U^^CJ) ] ]
 
'7	#B$ \ \ k;/F4 4?r   ro   c                   "    e Zd Zed        Zd Zy)timerc                 .    | j                   j                  S r	   )r7   atrB   s    r   r   ztimer.at   s    }}r   c                 n    t         j                  | _        	  | j                  |g|i | | `y # | `w xY wr	   )r5   ev_timer_againr?   start)r0   rZ   r,   kws       r   againztimer.again   s<     $22	$DJJx-$-"-##s   0 4N)rc   rd   re   rj   r   r   r
   r   r   r   r      s       $r   r   c                       e Zd Zy)signalNrc   rd   re   r
   r   r   r   r          r   r   c                       e Zd Zy)idleNr   r
   r   r   r   r      r   r   r   c                       e Zd Zy)prepareNr   r
   r   r   r   r      r   r   r   c                       e Zd Zy)checkNr   r
   r   r   r   r      r   r   r   c                       e Zd Zy)forkNr   r
   r   r   r   r      r   r   r   c                   "    e Zd Zd Zed        Zy)async_c                 l    t         j                  | j                  j                  | j                         y r	   )r5   ev_async_sendr@   rA   r7   rB   s    r   sendzasync_.send   s    DIINNDMM:r   c                 r    | j                   d uxr( t        t        j                  | j                               S r	   )r7   r`   r5   ev_async_pendingrB   s    r   rb   zasync_.pending   s*    }}D(XT%2H2H2W-XXr   N)rc   rd   re   r   rj   rb   r
   r   r   r   r      s    ; Y Yr   r   asyncc                        e Zd ZdZd Zd ZeZy)_ClosedWatcherpidrpidrstatusc                 j    |j                   | _         |j                  | _        |j                  | _        y r	   r   )r0   others     r   r/   z_ClosedWatcher.__init__   s#    99JJ	}}r   c                      y)NFr
   rB   s    r   __bool__z_ClosedWatcher.__bool__   s    r   N)rc   rd   re   	__slots__r/   r   __nonzero__r
   r   r   r   r      s    *I%
Kr   r   c                        e Zd Zd Z fdZed        Zed        Zej                  d        Zed        Z	e	j                  d        Z	 xZ
S )childc                 b    t        | j                        }t        t        |           || _        y r	   )r   r7   r.   r   close)r0   closed_watcherr2   s     r   r   zchild.close   s'     (6eT "&r   c                 .    | j                   j                  S r	   )r7   r   rB   s    r   r   z	child.pid   s    }}   r   c                 .    | j                   j                  S r	   r7   r   rB   s    r   r   z
child.rpid   s    }}!!!r   c                 &    || j                   _        y r	   r   rP   s     r   r   z
child.rpid  s    "r   c                 .    | j                   j                  S r	   r7   r   rB   s    r   r   zchild.rstatus  s    }}$$$r   c                 &    || j                   _        y r	   r   rP   s     r   r   zchild.rstatus	  s     %r   )rc   rd   re   _watcher_typer   rj   r   r   setterr   rl   rm   s   @r   r   r      sy    M' ! ! " " 
[[# # % % ^^& &r   r   c                   @    e Zd Zd Zed        Zed        Zed        Zy)statc                 p    | j                   j                  j                  sy | j                   j                  S r	   )r7   attrst_nlinkrB   s    r   r   z	stat.attr  (    }}!!**}}!!!r   c                 p    | j                   j                  j                  sy | j                   j                  S r	   )r7   prevr   rB   s    r   r   z	stat.prev  r   r   c                 .    | j                   j                  S r	   )r7   intervalrB   s    r   r   zstat.interval  s    }}%%%r   N)rc   rd   re   r   rj   r   r   r   r
   r   r   r   r     sA    M" "
 " "
 & &r   r   )=
__future__r   r   sysgevent.libevr   __all__rf   libr5   hasattrplatform
startswithr   rt   rq   r[   r   r   r   EV_PERIODIC	EV_SIGNALEV_CHILDEV_STATEV_IDLE
EV_PREPAREEV_CHECKEV_EMBEDEV_FORK
EV_CLEANUPEV_ASYNC	EV_CUSTOMEV_ERRORr#   gevent._ffir   r!   r%   IoMixinro   
TimerMixinr   SignalMixinr   	IdleMixinr   PrepareMixinr   
CheckMixinr   	ForkMixinr   
AsyncMixinr   localsobjectr   
ChildMixinr   	StatMixinr   r
   r   r   <module>r      sQ   7 
 "  mm
5* <<""5)Q+QQ)~~H~~HmmG$11H1x' MM6"NNG$z*z*OOX&NNG$MM6"MM6"i(NNG$NNG$MM6"i(NNG$OOX&NNG$&" )0
VJemm VJr? ?@$Eg $ 	U 		5??G 		e  ' 		Eg 		5??G 	YUw Y  
V 
&Eg &>&5??G &r   