
    ^h                         S r SSKrSSKJr  SSKrSSKrSSKJr  SSKJ	r	  SSKJ
r  Sq SSKJr  S	 rS
 r " S S\5      r\rSS/rg! \ a    \r N"f = f)zDummy Frame object    N)Event)ETERM   )ffi)lib)
bufferablec                     [        U 5      [        L a  U $ [        U [        5      (       d  [        U 5      n U R	                  5       $ )zReturn content of obj as bytes)typebytes
isinstance
memoryviewtobytes)objs    R/home/james-whalen/.local/lib/python3.13/site-packages/zmq/backend/cffi/message.py_contentr      s5    CyE
c:&&o;;=    c                    [         R                  " 5       nU S:X  a  U[        R                  :X  a  [        R
                  R                  U5      eU[        R                  :X  a#  [        R
                  R                  [        5      eU[        :X  a  [        R
                  R                  U5      e[        R
                  R                  U5      eg)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                       \ rS rSrSrSrSrSrSrSr	Sr
SrSrSS jrS rS rS r\S 5       r\S	 5       rS
 rS r\S 5       rS rS rS rSrg)Frame/   NFc                    SU l         [        R                  " S[        R                  " [        R
                  " S5      5      5      U l        U(       a  [        R                  U l	        [        U[        5      (       a  [        S5      eUc3  [        R                  " U R                  5      n[        U5        SU l         g Xl        [!        U5      ["        L a  Xl        ['        U5      U l        U R(                  R*                  (       d  [-        S5      e[        R.                  " U R(                  5      nU R(                  R0                  nUc  U(       a  Xt:  a  SnOSnU(       av  [        R2                  " U R                  U5      n[        U5        U R(                  [        R4                  " [        R6                  " U R                  5      U5      S S & SU l         g U(       a+  [9        5       nXl        [        R<                  " U5      U l	        [>        c  SSK J!q  [        R                  " S	[        R                  " [        R
                  " S
5      5      5      n	[>        RE                  XR:                  5      U	S   l#        [>        RH                  (       d  [        RJ                  " 5       [>        l$        [        R                  " S[>        RH                  5      U	S   l&        [        R                  " S[>        RN                  RP                  5      U	S   l)        [        RT                  " U R                  UUU	5      nUS:w  aA  [        RV                  " U	5        [        RV                  " U R                  5        [        U5        SU l         g )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__Frame.__init__:   sc    xxK9P0QR 00DLdC  R  <-BbM %D
:K!$'||&&OPP.\\((
<*"=$$T\\:>BbMFJllCJJq~~dll3Z@C %D 'C!$--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                 l    U R                   (       d#  U R                  (       d  U R                  5         g g g N)closedr*   closerL   s    r   __del__Frame.__del__   s!    {{4#4#4JJL $5{r   c                 $   U R                   (       d  U R                  (       d  U R                  c  g SU l         [        R                  " U R                  5      n[        R
                  " U R                  5        S U l        US:w  a  [        U5        g g )NTr   )rY   r*   r.   r   zmq_msg_closerK   r"   )rL   r    s     r   rZ   Frame.close   s`    ;;$++t||/C__T\\*	t||7bM r   c                    U R                   cX  [        R                  " [        R                  " U R
                  5      [        R                  " U R
                  5      5      U l         U R                  c  [        U R                   5      U l        gg)zAone-time extract buffer from zmq_msg

for Frames created by recv
N)	r4   r   r<   r   r=   r.   zmq_msg_sizer6   r   r[   s    r   _buffer_from_zmq_msgFrame._buffer_from_zmq_msg   s^    
 ::t||,annT\\.JDJ <<%djj1DL  r   c                 T    U R                   c  U R                  5         U R                   $ rX   )r6   rc   r[   s    r   r<   Frame.buffer   s"    <<%%'||r   c                 r    U R                   c  U R                  R                  5       U l         U R                   $ rX   )r5   r<   r   r[   s    r   r   Frame.bytes   s*    ;;++--/DK{{r   c                 .    U R                   R                  $ rX   )r<   r:   r[   s    r   __len__Frame.__len__   s    {{!!!r   c                 2    U R                   [        U5      :H  $ rX   )r   r   )rL   others     r   __eq__Frame.__eq__   s    zzXe_,,r   c                 6    U R                   R                  5       $ rX   )r0   doner[   s    r   rq   
Frame.done   s    ||  ""r   c                     U R                   $ rX   )r<   )rL   flagss     r   
__buffer__Frame.__buffer__   s    {{r   c                 "    U R                  5       $ )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_copyr[   s    r   __copy__Frame.__copy__   s     ~~r   c                     [        5       n[        R                  " UR                  U R                  5        U R                  Ul        U R
                  Ul        U R                  Ul        U R                  Ul        U$ )z@Fast shallow copy of the Frame.

Does not copy underlying data.
)r$   r   zmq_msg_copyr.   r4   r6   r>   r0   )rL   new_msgs     r   rx   Frame.fast_copy   sY    
 ' 	
w5

,, !% 2 2,,r   )r6   r5   r4   r*   rY   r0   r>   r.   )NFNN)__name__
__module____qualname____firstlineno__r4   r0   rY   morer6   r5   r*   r>   r.   rU   r\   rZ   rc   propertyr<   r   rj   rn   rq   ru   ry   rx   __static_attributes__ r   r   r$   r$   /   s    EGFDGFLMGR"h
2  
  
"- # # r   r$   Message)__doc__r   	threadingr   r   	zmq.errorzmq.constantsr   _cffir   r   r   r@   __pypy__.bufferabler   maybe_bufferableImportErrorobjectr   r"   r$   r   __all__r   r   r   <module>r      so    
   
    	B
m m` I
[  s   A AA