
     f                        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dS )    )annotationsN)TYPE_CHECKING   )_core)ReceiveStream
SendStream)_handlekernel32raise_winerror)ConflictDetectorfinalwin32i   c                  >    e Zd ZddZedd            ZddZdd	Zd
S )_HandleHolderhandleintreturnNonec                    d| _         t          |t                    st          d          || _         t	          j        | j                    d S )Nzhandle must be an int)r   
isinstancer   	TypeErrorr   register_with_iocpselfr   s     V/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/trio/_windows_pipes.py__init__z_HandleHolder.__init__   sJ    &#&& 	53444 -----    boolc                    | j         dk    S Nr   )r   r   s    r   closedz_HandleHolder.closed   s    {b  r   c                    | j         rd S | j        }d| _        t          j        t	          |                    st                       d S d S r!   )r#   r   r
   CloseHandler	   r   r   s     r   closez_HandleHolder.close   sT    ; 	F#GFOO44 		 	r   c                .    |                                   d S N)r&   r"   s    r   __del__z_HandleHolder.__del__'   s    

r   Nr   r   r   r   )r   r   r   r   )__name__
__module____qualname__r   propertyr#   r&   r)    r   r   r   r      sp        . . . . ! ! ! X!        r   r   c                  :    e Zd ZdZddZdd	Zdd
ZddZddZdS )PipeSendStreamzdRepresents a send stream over a Windows named pipe that has been
    opened in OVERLAPPED mode.
    r   r   r   r   c                V    t          |          | _        t          d          | _        d S Nz)another task is currently using this piper   _handle_holderr   _conflict_detectorr   s     r   r   zPipeSendStream.__init__1   -    +F33"27#
 #
r   databytesc                  K   | j         5  | j        j        rt          j        d          |s't          j                     d {V  	 d d d            d S 	 t          j        | j        j        |           d {V }n# t          $ r}t          j	        |d }~ww xY w|t          |          k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nthis pipe is already closed)r7   r6   r#   r   ClosedResourceError
checkpointwrite_overlappedr   BrokenPipeErrorBrokenResourceErrorlen)r   r9   writtenexs       r   send_allzPipeSendStream.send_all7   s`     $ 	( 	(") O/0MNNN &(((((((((	( 	( 	( 	( 	( 	( 	( 	(8 % 6t7J7QSW X XXXXXXX" 8 8 8/R78
 c$ii'''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s5   =B=%A;:B=;
BBBB==CCc                   K   | j         5  | j        j        rt          j        d          t          j                     d {V  d d d            d S # 1 swxY w Y   d S )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   s      $ 	% 	%") O/0MNNN "$$$$$$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   :AAAc                8    | j                                          d S r(   r6   r&   r"   s    r   r&   zPipeSendStream.closeQ       !!#####r   c                d   K   |                                   t          j                     d {V  d S r(   r&   r   r>   r"   s    r   aclosezPipeSendStream.acloseT   :      

           r   Nr*   )r9   r:   r   r   r+   )	r,   r-   r.   __doc__r   rE   rG   r&   rM   r0   r   r   r2   r2   +   s         
 
 
 
( ( ( ($% % % %$ $ $ $! ! ! ! ! !r   r2   c                  4    e Zd ZdZddZdddZddZddZdS )PipeReceiveStreamz3Represents a receive stream over an os.pipe object.r   r   r   r   c                V    t          |          | _        t          d          | _        d S r4   r5   r   s     r   r   zPipeReceiveStream.__init__]   r8   r   N	max_bytes
int | Noner:   c                2  K   | j         5  | j        j        rt          j        d          |t
          }n9t          |t                    st          d          |dk     rt          d          t          |          }	 t          j        | j        j        |           d {V }||d = |cd d d            S # t          $ rI | j        j        rt          j        d          d t          j                     d {V  Y d d d            dS w xY w# 1 swxY w Y   d S )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   rS   buffersizes       r   receive_somezPipeReceiveStream.receive_somec   s     $ $	 $	") O/0MNNN 0		!)S11 F#$DEEEq==$%EFFFy))F"6'.       * 455MI$	 $	 $	 $	 $	 $	 $	 $	" #   &-  37   &(((((((((C$	 $	 $	 $	 $	 $	 $	 $	"#$	 $	 $	 $	 $	 $	 $	 $	 $	 $	s7   A3D>%B6#D6AD	:DD		DDDc                8    | j                                          d S r(   rI   r"   s    r   r&   zPipeReceiveStream.close   rJ   r   c                d   K   |                                   t          j                     d {V  d S r(   rL   r"   s    r   rM   zPipeReceiveStream.aclose   rN   r   r*   r(   )rS   rT   r   r:   r+   )r,   r-   r.   rO   r   r\   r&   rM   r0   r   r   rQ   rQ   Y   sp        ==
 
 
 
% % % % %N$ $ $ $! ! ! ! ! !r   rQ   )
__future__r   systypingr    r   _abcr   r   _core._windows_cffir	   r
   r   _utilr   r   platformrV   r   r2   rQ   r0   r   r   <module>rg      sQ   " " " " " " 



                   + + + + + + + + B B B B B B B B B B * * * * * * * *
|wm  
       0 *! *! *! *! *!Z *! *! *!Z 5! 5! 5! 5! 5! 5! 5! 5! 5! 5!r   