o
    0׾g?                     @   s
  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r3ejds)J de	jZe	jZe	jZndd  Z 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	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	jdfe	j dfgZ!d dl"m#Z$ dd Z%G dd de$j#Z#G dd  d e$j&e#Z'G d!d" d"e$j(e#Z)G d#d$ d$e$j*e#Z+G d%d& d&e$j,e#Z-G d'd( d(e$j.e#Z/G d)d* d*e$j0e#Z1G d+d, d,e$j2e#Z3G d-d. d.e$j4e#Z5e5e6 d/< G d0d1 d1e7Z8G d2d3 d3e$j9e#Z:G d4d5 d5e$j;e#Z<dS )6    )absolute_importprint_functionN)	_corecffivfd_openwinz$vfd functions only needed on windowsc                 C   s   | S N )fdr   r   ^/var/www/html/backend_erp/backend_erp_env/lib/python3.10/site-packages/gevent/libev/watcher.py<lambda>   s    r   r   READWRITE_IOFDSETPERIODICSIGNALCHILDSTATIDLEPREPARECHECKEMBEDFORKCLEANUPASYNCCUSTOMERROR)watcherc                 C   s   t | tS r   )_baseevents_to_str_events)eventsr   r   r
   _events_to_str9      r!   c                       s   e Zd ZeZeZdZdZdde	j
f fdd	Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd ZeeeZdd Ze	jdd ZeeeZdd Zedd Z  ZS )r   evr   TNc                    s.   |rd| _ nd| _ tt| j||||d d S )Nr      )refpriorityargs)_flagssuperr   __init__)self_loopr%   r&   r'   	__class__r   r
   r*   I   s   zwatcher.__init__c                 C      t | j| d S r   libevev_set_priority_watcherr+   r&   r   r   r
   _watcher_ffi_set_priorityQ   s   z!watcher._watcher_ffi_set_priorityc                 C   s   | j | j| jg|R   d S r   )_watcher_initr3   _watcher_callback)r+   r'   r   r   r
   _watcher_ffi_initT   s
   zwatcher._watcher_ffi_initc                 C   s   |  | jj| j d S r   )_watcher_startloop_ptrr3   r+   r   r   r
   _watcher_ffi_startY      zwatcher._watcher_ffi_startc                 C   s*   | j d@ r| j  |  j dM  _ d S d S )N   )r(   r:   r%   r<   r   r   r
   _watcher_ffi_ref\   s   

zwatcher._watcher_ffi_refc                 C   s.   | j d@ dkr| j  |  j dO  _ d S d S )N   r$   r?   )r(   r:   unrefr<   r   r   r
   _watcher_ffi_unrefa   s   
zwatcher._watcher_ffi_unrefc                 C   s   | j d@  S )Nr$   )r(   r<   r   r   r
   _get_refg   r"   zwatcher._get_refc                 C   s   |r| j d@ s	d S | j d@ r| j  |  j dM  _ d S | j d@ r#d S |  j dO  _ | j d@ sCt| jrE| j  |  j dO  _ d S d S d S )Nr$   r?   i)r(   r:   r%   r1   ev_is_activer3   rC   r+   valuer   r   r
   _set_refj   s   




zwatcher._set_refc                 C   s   t | jS r   )r1   ev_priorityr3   r<   r   r   r
   _get_priority~   r"   zwatcher._get_priorityc                 C   r/   r   r0   r4   r   r   r
   _set_priority   s   zwatcher._set_priorityc                 G   sj   || _ |pt| _| jd@ dkr| j  |  jdO  _t| jj| j	| | jd@ s3|  jdO  _d S d S )NrB   r$   r?      )
callback_NOARGSr'   r(   r:   rC   r1   ev_feed_eventr;   r3   )r+   reventsrN   r'   r   r   r
   feed   s   


zwatcher.feedc                 C   s   t | jo	t| jS r   )boolr3   r1   ev_is_pendingr<   r   r   r
   pending   s   zwatcher.pending)__name__
__module____qualname__ffi_FFIr1   _LIB_watcher_prefixr(   r   rO   r*   r5   r8   r=   rA   rD   rE   rI   propertyr%   rK   not_while_activerL   r&   rR   rU   __classcell__r   r   r-   r
   r   >   s*    


r   c                   @   sr   e Zd ZejejB ejB Zdd Ze	j
dd ZeeeZdd Ze	j
dd ZeeeZed	d
 Zdd ZdS )ioc                 C      t | jjS r   )vfd_getr3   r	   r<   r   r   r
   _get_fd   r"   z
io._get_fdc                 C   s0   t |}t| jj | | j| j|| jj d S r   )r   vfd_freer3   r	   r6   r7   r    )r+   r	   vfdr   r   r
   _set_fd   s   z
io._set_fdc                 C      | j jS r   )r3   r    r<   r   r   r
   _get_events   s   zio._get_eventsc                 C   s   |  | j| j| jj| d S r   )r6   r3   r7   r	   )r+   r    r   r   r
   _set_events   s   zio._set_eventsc                 C   ra   r   )r!   r3   r    r<   r   r   r
   
events_str      zio.events_strc                 C   s   d| j | jf S )Nz fd=%s events=%s)r	   rj   r<   r   r   r
   _format   s   z
io._formatN)rV   rW   rX   r1   EV__IOFDSETEV_READEV_WRITE
EVENT_MASKrc   r   r^   rf   r]   r	   rh   ri   r    rj   rl   r   r   r   r
   r`      s    




r`   c                   @   s    e Zd Zedd Zdd ZdS )timerc                 C   rg   r   )r3   atr<   r   r   r
   rr         ztimer.atc                 O   s2   t j| _z| j|g|R i | W | `d S | `w r   )r1   ev_timer_againr9   start)r+   rN   r'   kwr   r   r
   again   s   ztimer.againN)rV   rW   rX   r]   rr   rw   r   r   r   r
   rq      s    
rq   c                   @      e Zd ZdS )signalNrV   rW   rX   r   r   r   r
   ry          ry   c                   @   rx   )idleNrz   r   r   r   r
   r|      r{   r|   c                   @   rx   )prepareNrz   r   r   r   r
   r}      r{   r}   c                   @   rx   )checkNrz   r   r   r   r
   r~      r{   r~   c                   @   rx   )forkNrz   r   r   r   r
   r      r{   r   c                   @   s    e Zd Zdd Zedd ZdS )async_c                 C   s   t | jj| j d S r   )r1   ev_async_sendr:   r;   r3   r<   r   r   r
   send   r>   zasync_.sendc                 C   s   | j d uott| j S r   )r3   rS   r1   ev_async_pendingr<   r   r   r
   rU      s   zasync_.pendingN)rV   rW   rX   r   r]   rU   r   r   r   r
   r      s    r   asyncc                   @   s$   e Zd ZdZdd Zdd ZeZdS )_ClosedWatcherpidrpidrstatusc                 C   s   |j | _ |j| _|j| _d S r   r   )r+   otherr   r   r
   r*      s   z_ClosedWatcher.__init__c                 C   s   dS )NFr   r<   r   r   r
   __bool__   s   z_ClosedWatcher.__bool__N)rV   rW   rX   	__slots__r*   r   __nonzero__r   r   r   r
   r      s
    r   c                       s`   e Zd Zd Z fddZedd Zedd Zejdd Zedd	 Z	e	jd
d	 Z	  Z
S )childc                    s"   t | j}tt|   || _d S r   )r   r3   r)   r   close)r+   closed_watcherr-   r   r
   r      s   

zchild.closec                 C   rg   r   )r3   r   r<   r   r   r
   r      rs   z	child.pidc                 C   rg   r   r3   r   r<   r   r   r
   r      rs   z
child.rpidc                 C      || j _d S r   r   rG   r   r   r
   r     rk   c                 C   rg   r   r3   r   r<   r   r   r
   r     rs   zchild.rstatusc                 C   r   r   r   rG   r   r   r
   r   	  rk   )rV   rW   rX   _watcher_typer   r]   r   r   setterr   r_   r   r   r-   r
   r      s    



r   c                   @   s4   e Zd Zd Zedd Zedd Zedd ZdS )statc                 C      | j jjsd S | j jS r   )r3   attrst_nlinkr<   r   r   r
   r        
z	stat.attrc                 C   r   r   )r3   prevr   r<   r   r   r
   r     r   z	stat.prevc                 C   rg   r   )r3   intervalr<   r   r   r
   r     rs   zstat.intervalN)rV   rW   rX   r   r]   r   r   r   r   r   r   r
   r     s    

r   )=
__future__r   r   sysgevent.libevr   __all__rY   libr1   hasattrplatform
startswithr   rd   rb   rO   rn   ro   rm   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!   IoMixinr`   
TimerMixinrq   SignalMixinry   	IdleMixinr|   PrepareMixinr}   
CheckMixinr~   	ForkMixinr   
AsyncMixinr   localsobjectr   
ChildMixinr   	StatMixinr   r   r   r   r
   <module>   sZ   
Y 

