
    fX                         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 d	 Zd
 Z G d de      ZeZddgZy# e$ r eZY !w xY w)zDummy Frame object    N)Event)ETERM   )ffi)lib)
bufferablec                 ~    t        |       t        u r| S t        | t              st        |       } | j	                         S )zReturn content of obj as bytes)typebytes
isinstance
memoryviewtobytes)objs    S/var/www/cvtools/html/venv/lib/python3.12/site-packages/zmq/backend/cffi/message.py_contentr      s2    CyE
c:&o;;=    c                    t        j                         }| dk(  r|t        j                  k(  rt        j
                  j                  |      |t        j                  k(  r#t        j
                  j                  t              |t        k(  rt        j
                  j                  |      t        j
                  j                  |      y)Nr   )C	zmq_errnoerrnoEINTRzmqerrorInterrruptedSystemCallEAGAINAgainr   ContextTerminatedZMQError)rcerrs     r   	_check_rcr"   !   s    
++-C	Rx%++))22377ELL ))//%((E\))--c22))$$S))r   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y)FrameNFc                 `   d| _         t        j                  dt        j                  t        j
                  d                  | _        |rt        j                  | _	        t        |t              rt        d      |2t        j                  | j                        }t        |       d| _         y || _        t!        |      t"        u r|| _        t'        |      | _        t        j*                  | j(                        }| j(                  j,                  }||r||k  rd}nd}|rst        j.                  | j                  |      }t        |       | j(                  t        j0                  t        j2                  | j                        |      d d  d| _         y |r+t5               }|| _        t        j8                  |      | _	        t:        ddlma t        j                  dt        j                  t        j
                  d	                  }	t:        jA                  || j6                        |	d   _!        t:        jD                  st        jF                         t:        _"        t        j                  d
t:        jD                        |	d   _$        t        j                  dt:        jJ                  jL                        |	d   _'        t        jP                  | j                  |||	      }|dk7  r?t        jR                  |	       t        jR                  | j                         t        |       d| _         y )NTzzmq_msg_t[1]	zmq_msg_tz@Unicode strings are not allowed. Only: bytes, buffer interfaces.Fr   )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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__:   sQ    xxK9P0QR 00DLdC R  <-BbM %D
:DK!$'.\\((
<*~"=$$T\\:>BbMFJllCJJq~~dll3Z@C %D 'C!$D--c2DL
 >6xx
AHHSZZ-@$AB\\$(:(:;Q
!!!"!1!1!3FV-?-?@Qxx)<)<)G)GHQ %%LL	
 7FF4LFF4<< bM!r   c                 X    | j                   s| j                  s| j                          y y y N)closedr)   closerI   s    r   __del__zFrame.__del__   s!    {{4#4#4JJL $5{r   c                    | j                   s| j                  s| j                  y d| _         t        j                  | j                        }t        j
                  | j                         d | _        |dk7  rt        |       y y )NTr   )rU   r)   r-   r   zmq_msg_closerH   r"   )rI   r    s     r   rV   zFrame.close   s`    ;;$++t||/C__T\\*	t||7bM r   c                    | j                   Ut        j                  t        j                  | j
                        t        j                  | j
                              | _         | j                  t        | j                         | _        yy)zQone-time extract buffer from zmq_msg

        for Frames created by recv
        N)	r3   r   r9   r   r:   r-   zmq_msg_sizer5   r   rW   s    r   _buffer_from_zmq_msgzFrame._buffer_from_zmq_msg   s^    
 ::t||,annT\\.JDJ <<%djj1DL  r   c                 R    | j                   | j                          | j                   S rT   )r5   r]   rW   s    r   r9   zFrame.buffer   s"    <<%%'||r   c                 p    | j                   | j                  j                         | _         | j                   S rT   )r4   r9   r   rW   s    r   r   zFrame.bytes   s*    ;;++--/DK{{r   c                 .    | j                   j                  S rT   )r9   r7   rW   s    r   __len__zFrame.__len__   s    {{!!!r   c                 2    | j                   t        |      k(  S rT   )r   r   )rI   others     r   __eq__zFrame.__eq__   s    zzXe_,,r   c                 6    | j                   j                         S rT   )r/   donerW   s    r   rf   z
Frame.done   s    ||  ""r   c                     | j                   S rT   )r9   )rI   flagss     r   
__buffer__zFrame.__buffer__   s    {{r   c                 "    | j                         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_copyrW   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/   )rI   new_msgs     r   rk   zFrame.fast_copy   sY    
 ' 	
w5

,, !% 2 2,,r   )NFNN)__name__
__module____qualname__r3   r/   rU   morer5   r4   r)   r;   r-   rR   rX   rV   r]   propertyr9   r   ra   rd   rf   ri   rl   rk    r   r   r$   r$   /   s    EGFDGFLMGO"b
2  
  
"- # # r   r$   Message)__doc__r   	threadingr   r   	zmq.errorzmq.constantsr   _cffir   r   r   r=   __pypy__.bufferabler   maybe_bufferableImportErrorobjectr   r"   r$   rv   __all__ru   r   r   <module>r      so    
   
    	B
j jZ I
U  s   A AA