
    Mh                         d Z ddlZddlmZ ddlZddlZddlmZ ddlm	Z	 ddlm
Z da	 ddlmZ n# e$ r eZY nw xY wd	 Zd
 Z G d de          ZeZddgZdS )zDummy Frame object    N)Event)ETERM   )ffi)lib)
bufferablec                     t          |           t          u r| S t          | t                    st          |           } |                                 S )zReturn content of obj as bytes)typebytes
isinstance
memoryviewtobytes)objs    X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/zmq/backend/cffi/message.py_contentr      sC    CyyE
c:&& oo;;==    c                    t          j                    }| dk    r|t          j        k    rt          j                            |          |t          j        k    r$t          j                            t                    |t          k    rt          j        
                    |          t          j                            |          dS )Nr   )C	zmq_errnoerrnoEINTRzmqerrorInterrruptedSystemCallEAGAINAgainr   ContextTerminatedZMQError)rcerrs     r   	_check_rcr"   !   s    
+--C	Rxx%+)223777EL  )//%(((E\\)--c222)$$S)))1r   c                       e Zd ZdZdZdZdZdZdZdZ	dZ
dZddZd Zd Zd Zed             Zed             Zd	 Zd
 Zed             Zd Zd Zd ZdS )FrameNFc                 V   d| _         t          j        dt          j        t          j        d                              | _        |rt          j        | _	        t          |t                    rt          d          |1t          j        | j                  }t          |           d| _         d S || _        t!          |          t"          u r|| _        t'          |          | _        | j        j        st-          d          t          j        | j                  }| j        j        }||r	||k     rd}nd}|rht          j        | j        |          }t          |           | j        t          j        t          j        | j                  |          d d <   d| _         d S |r.t9                      }|| _        t          j        |          | _	        t>          ddl m!a t          j        d	t          j        t          j        d
                              }	t>          "                    || j                  |	d         _#        t>          j$        st          j%                    t>          _$        t          j        dt>          j$                  |	d         _&        t          j        dt>          j'        j(                  |	d         _)        t          j*        | j        |||	          }|dk    r<t          j+        |	           t          j+        | j                   t          |           d| _         d S )NTzzmq_msg_t[1]	zmq_msg_tz@Unicode strings are not allowed. Only: bytes, buffer interfaces.Fz/memoryview: underlying buffer is not contiguousr   )gczzhint[1]zhintzmutex_t*zvoid*),_failed_initr   castr   mallocsizeofzmq_msgr   _FINISHED_TRACKERtrackerr   str	TypeErrorzmq_msg_initr"   _datar
   r   _bytesr   _buffer
contiguousBufferErrorfrom_buffernbyteszmq_msg_init_sizebufferzmq_msg_datar   tracker_eventMessageTrackerzmq_gczmq.utils.garbager'   storeid_push_mutexmutex_allocatemutex_push_socket
underlyingsockzmq_wrap_msg_init_datafree)
selfdatatrackcopycopy_thresholdr    c_data
data_len_cevthints
             r   __init__zFrame.__init__:   s    xK9P9P0Q0QRR  	10DLdC   	R   <--BbMMM %DF
::DK!$''|& 	QOPPP..\(
< *~"="= 	$T\:>>BbMMMFJlCJq~dl33Z@@C %DF  	3''C!$D-c22DL
 >666666x
AHSZ-@-@$A$ABB\\$(:;;Q
! 	4!"!1!3!3FV-?@@Qx)<)GHHQ %L	
 
 77F4LLLF4<   bMMM!r   c                 R    | j         s| j        s|                                  d S d S d S N)closedr)   closerK   s    r   __del__zFrame.__del__   s;    { 	4#4 	JJLLLLL	 	 	 	r   c                     | j         s| j        s| j        d S d| _         t          j        | j                  }t          j        | j                   d | _        |dk    rt          |           d S d S )NTr   )rW   r)   r-   r   zmq_msg_closerJ   r"   )rK   r    s     r   rX   zFrame.close   sr    ; 	$+ 	t|/CF_T\**	t|77bMMMMM 7r   c                     | j         Ht          j        t          j        | j                  t          j        | j                            | _         | j        t          | j                   | _        dS dS )zQone-time extract buffer from zmq_msg

        for Frames created by recv
        N)	r3   r   r;   r   r<   r-   zmq_msg_sizer5   r   rY   s    r   _buffer_from_zmq_msgzFrame._buffer_from_zmq_msg   sc    
 :t|,,anT\.J.J DJ <%dj11DLLL  r   c                 F    | j         |                                  | j         S rV   )r5   r_   rY   s    r   r;   zFrame.buffer   s$    <%%'''|r   c                 Z    | j         | j                                        | _         | j         S rV   )r4   r;   r   rY   s    r   r   zFrame.bytes   s'    ;+--//DK{r   c                     | j         j        S rV   )r;   r9   rY   s    r   __len__zFrame.__len__   s    {!!r   c                 2    | j         t          |          k    S rV   )r   r   )rK   others     r   __eq__zFrame.__eq__   s    zXe__,,r   c                 4    | j                                         S rV   )r/   donerY   s    r   rh   z
Frame.done   s    |  """r   c                     | j         S rV   )r;   )rK   flagss     r   
__buffer__zFrame.__buffer__   s
    {r   c                 *    |                                  S )a<  Create a shallow copy of the message.

        This does not copy the contents of the Frame, just the pointer.
        This will increment the 0MQ ref count of the message, but not
        the ref count of the Python object. That is only done once when
        the Python is first turned into a 0MQ message.
        )	fast_copyrY   s    r   __copy__zFrame.__copy__   s     ~~r   c                     t                      }t          j        |j        | j                   | j        |_        | j        |_        | j        |_        | j        |_        |S )zPFast shallow copy of the Frame.

        Does not copy underlying data.
        )r$   r   zmq_msg_copyr-   r3   r5   r=   r/   )rK   new_msgs     r   rm   zFrame.fast_copy   sR    
 '' 	
w555
, !% 2,r   )NFNN)__name__
__module____qualname__r3   r/   rW   morer5   r4   r)   r=   r-   rT   rZ   rX   r_   propertyr;   r   rc   rf   rh   rk   rn   rm    r   r   r$   r$   /   s#       EGFDGFLMGR" R" R" R"h    
2 
2 
2   X
   X
" " "- - - # # X#           r   r$   Message)__doc__r   	threadingr   r   	zmq.errorzmq.constantsr   _cffir   r   r   r?   __pypy__.bufferabler   maybe_bufferableImportErrorobjectr   r"   r$   rx   __all__rw   r   r   <module>r      s     
        



                      	BBBBBBB       m m m m m m m m` I
s   1 ;;