
    +j                     *   d dl Z d dlZddlmZ ej        Zej        dk    rd dlZee j        e j        e j        gej	        _
        e j        ej	        _        e j        gej        _
        e j        gej        _
        e j        ej        _        e j        e j        e j        e j         e j        e j                  gej        _
        e j        ej        _        e j        e j        e j        e j        e j        e j        e j        e j        gej        _
        e j        ej        _        e j        e j        e j        e j        e j        e j        e j        gej        _
        e j        ej        _        g ej        _
        e j        e j        e j        gej        _
        e j        ej        _        e j        e j        gej        _
        e j        ej        _        e j        e j        e j        gej        _
        e j        ej        _        d ZddZd Z G d	 d
          ZdS )    N   )controlntc                     t          | t                    r| S |                                 }t          j        dk    rt          j        |          n|S )Nr   )
isinstanceintfilenoosnamemsvcrtget_osfhandle)file_objfds     Z/home/wildlama/comfy/ComfyUI/.venv/lib/python3.11/site-packages/comfy_aimdo/host_buffer.py_file_handler   ;   sH    (C   			B')w$6###B>    Tc                    t                               t          |          t          |           t          |          t          |          t          |          pd t          |          t	          |                    st          d          d S )Nzhostbuf_file_reader_read failed)libhostbuf_file_reader_readr   r   boolRuntimeError)r   file_offsetsizestream
device_ptrdevice	mark_colds          r   read_file_to_devicer   C   s{    ''F\(5K5K(+K(8(8#d))S[[EXTX(+JiJ J > <===> >r   c                  8    t                                            d S )N)r   hostbuf_file_reader_cleanup r   r   cleanup_file_readerr"   J   s    ##%%%%%r   c                   F    e Zd ZddZd ZddZddZd	 Zd
 ZddZ	d Z
dS )
HostBufferr   Tc                 t   t          |          }t          |t          |                    }d| _        t          dt          |                    | _        t                              | j        |t          |                    | _        | j        st          d          |r| 	                    |           d S d S )Nr   zHostBuffer allocation failed)
r   maxr   prewarmr   hostbuf_allocater   _ptrr   extend)selfr   r'   max_grow_sizer   max_mmap_sizes         r   __init__zHostBuffer.__init__O   s    4yyD#m"4"455	1c'll++((}d9ooVV	y 	?=>>> 	KK	 	r   c                 f    t                               | j                  }|rt          |          ndS )Nr   )r   hostbuf_get_raw_addressr)   r   r+   ptrs     r   get_raw_addresszHostBuffer.get_raw_addressZ   s,    ))$)44%s3xxxA%r   Fc           	      \   t          |          }t          j        d          }t                              | j        |t          |          t          |          t          j        |                    }| xj        |j	        z  c_        |s|rt          d          |rt          |          ndS )Nr   zHostBuffer.extend failed)r   ctypesc_int64r   hostbuf_extendr)   r   byrefr   valuer   )r+   r   
reallocateregister
size_deltar2   s         r   r*   zHostBuffer.extend^   s    4yy^A&&
  D$z2B2BDNN!'j!9!9; ;		Z%%		 	;t 	;9:::%s3xxxA%r   c                    |dnt          |          }t                              | j        |t	          |          t          |          t          |          t          |          t          |          pd t          |                    st          d          t          | j        t          |          t          |          z             | _        d S )Nr=   z!HostBuffer.read_file_slice failed)r   r   hostbuf_read_file_slicer)   r   r   r&   r   )r+   r   r   r   offsetr   r   r   s           r   read_file_slicezHostBuffer.read_file_sliceh   s    ~3v;;**49fl8>T>T+.{+;+;SYYF+.v;;+>$JQ Q 	D BCCC	3v;;T#:;;			r   c                     t                               | j        t          |          t          |                    st	          d          d S )NzHostBuffer.register failed)r   hostbuf_registerr)   r   r   )r+   r@   r   s      r   r;   zHostBuffer.registerp   sC    ##DIs6{{CIIFF 	=;<<<	= 	=r   c                 ~    t                               | j        t          |                    st	          d          d S )NzHostBuffer.unregister failed)r   hostbuf_unregisterr)   r   r   )r+   r@   s     r   
unregisterzHostBuffer.unregistert   s;    %%diV== 	?=>>>	? 	?r   c                     t                               | j        t          |          t	          |                    st          d          t          |          | _        d S )NzHostBuffer.truncate failed)r   hostbuf_truncater)   r   r   r   r   )r+   r   do_unregisters      r   truncatezHostBuffer.truncatex   sL    ##DIs4yy$}:M:MNN 	=;<<<II			r   c                     t          | dd           }|r*t          t                              |           d | _        d S d S )Nr)   )getattrr   hostbuf_freer)   r1   s     r   __del__zHostBuffer.__del__}   sI    dFD)) 	  %%%DIII	 	r   N)r   r   T)FT)r   r   r   r=   T)__name__
__module____qualname__r.   r3   r*   rA   r;   rF   rJ   rN   r!   r   r   r$   r$   N   s        	 	 	 	& & && & & &< < < <= = =? ? ?   
    r   r$   rO   )r5   r
    r   r   r   r   c_uint64c_boolr(   argtypesc_void_prestyperM   r0   POINTERr6   r7   c_intr?   r   r    rC   rE   rH   r   r   r"   r$   r!   r   r   <module>r[      s9    				      k7d??MMM?%+_fov}$UC!#)?C !' 1C,2O+<C(*0/C'#)?FOV]#)=.&.2P2P#RC!'C 		,C( +1-C' 	-C ) ,2=C (/1C#,%+_fov$WC!#)=C '-&HC#%+]C"%+_fov}$UC!#)=C ? ? ?> > > >& & &4 4 4 4 4 4 4 4 4 4r   