
    ,h                        d dl mZ d dlZd dlmZ ddlmZ ddlmZm	Z	 ddl
mZmZmZ ddlmZmZ ej"                  d	k(  serJ d
Z G d d      Ze G d de	             Ze G d de             Zy)    )annotationsN)TYPE_CHECKING   )_core)ReceiveStream
SendStream)_handlekernel32raise_winerror)ConflictDetectorfinalwin32i   c                  6    e Zd ZddZedd       ZddZddZy)	_HandleHolderc                    d| _         t        |t              st        d      || _         t	        j
                  | j                          y )Nzhandle must be an int)handle
isinstanceint	TypeErrorr   register_with_iocpselfr   s     U/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/trio/_windows_pipes.py__init__z_HandleHolder.__init__   s8    &#&344  -    c                     | j                   dk(  S Nr   )r   r   s    r   closedz_HandleHolder.closed   s    {{b  r   c                    | j                   ry | j                  }d| _        t        j                  t	        |            st                y y r   )r    r   r
   CloseHandler	   r   r   s     r   closez_HandleHolder.close   s9    ;;##GFO4 5r   c                $    | j                          y N)r#   r   s    r   __del__z_HandleHolder.__del__'   s    

r   Nr   r   returnNone)r(   boolr(   r)   )__name__
__module____qualname__r   propertyr    r#   r&    r   r   r   r      s%    . ! !r   r   c                  8    e Zd ZdZddZd	dZd
dZd
dZd
dZy)PipeSendStreamzdRepresents a send stream over a Windows named pipe that has been
    opened in OVERLAPPED mode.
    c                D    t        |      | _        t        d      | _        y Nz)another task is currently using this piper   _handle_holderr   _conflict_detectorr   s     r   r   zPipeSendStream.__init__1       +F3"27#
r   c                  K   | j                   5  | j                  j                  rt        j                  d      |s&t        j
                          d {    	 d d d        y 	 t        j                  | j                  j                  |       d {   }|t        |      k(  sJ 	 d d d        y 7 [7  # t        $ r}t        j                  |d }~ww xY w# 1 sw Y   y xY ww)Nthis pipe is already closed)r7   r6   r    r   ClosedResourceError
checkpointwrite_overlappedr   BrokenPipeErrorBrokenResourceErrorlen)r   datawrittenexs       r   send_allzPipeSendStream.send_all7   s     $$ 	(""))//0MNN&&(((	( 	(8 % 6 6t7J7J7Q7QSW XX c$i'''	( 	(
 ) Y" 8//R78	( 	(sk   C"ACB0C	C"$-B4B2B4C'	C"0C2B44	C=CCCCC"c                   K   | j                   5  | j                  j                  rt        j                  d      t        j
                          d {    d d d        y 7 # 1 sw Y   y xY ww)NzThis pipe is already closed)r7   r6   r    r   r;   r<   r   s    r   wait_send_all_might_not_blockz,PipeSendStream.wait_send_all_might_not_blockI   sc     $$ 	%""))//0MNN ""$$$	% 	%
 %	% 	%s/   A.AA"A A"	A. A""A+'A.c                8    | j                   j                          y r%   r6   r#   r   s    r   r#   zPipeSendStream.closeQ       !!#r   c                h   K   | j                          t        j                          d {    y 7 wr%   r#   r   r<   r   s    r   aclosezPipeSendStream.acloseT   !     

      (202Nr'   )rA   bytesr(   r)   r+   )	r,   r-   r.   __doc__r   rD   rF   r#   rL   r0   r   r   r2   r2   +   s     
($%$!r   r2   c                  2    e Zd ZdZddZdd	dZd
dZd
dZy)PipeReceiveStreamz3Represents a receive stream over an os.pipe object.c                D    t        |      | _        t        d      | _        y r4   r5   r   s     r   r   zPipeReceiveStream.__init__]   r8   r   Nc                Z  K   | j                   5  | j                  j                  rt        j                  d      |t
        }n+t        |t              st        d      |dk  rt        d      t        |      }	 t        j                  | j                  j                  |       d {   }||d = |cd d d        S 7 # t        $ rT | j                  j                  rt        j                  d      d t        j                          d {  7   Y d d d        yw xY w# 1 sw Y   y xY ww)Nr:   zmax_bytes must be integer >= 1r   zanother task closed this piper   )r7   r6   r    r   r;   DEFAULT_RECEIVE_SIZEr   r   r   
ValueError	bytearrayreadinto_overlappedr   r>   r<   )r   	max_bytesbuffersizes       r   receive_somezPipeReceiveStream.receive_somec   s"    $$ %	""))//0MNN 0	!)S1#$DEEq=$%EFFy)F"66''.. , 45MK%	 %	 # &&--337  &&(((E%	 %	$%%	 %	sf   D+A+D;-B?(B=)B?-D3
D+=B??ADDDD	D+DDD($D+c                8    | j                   j                          y r%   rH   r   s    r   r#   zPipeReceiveStream.close   rI   r   c                h   K   | j                          t        j                          d {    y 7 wr%   rK   r   s    r   rL   zPipeReceiveStream.aclose   rM   rN   r'   r%   )rY   z
int | Noner(   rO   r+   )r,   r-   r.   rP   r   r\   r#   rL   r0   r   r   rR   rR   Y   s    =
&P$!r   rR   )
__future__r   systypingr    r   _abcr   r   _core._windows_cffir	   r
   r   _utilr   r   platformrU   r   r2   rR   r0   r   r   <module>rg      sw    " 
    + B B *
||wm 3  
 0 *!Z *! *!Z 6! 6! 6!r   