o
    پim                     @   s4   d dl Z d dlZeeZG dd dZdd ZdS )    Nc                   @   s0   e Zd ZdefddZdededefddZd	S )
BinaryWrapperpath_binaryc              
   C   sP   zt || _W n ty  } ztd| d|   d }~ww t| j d S )NzFailed to load CDLL from z: )ctypesCDLLcdllOSErrorloggererror_setup_function_signatures)selfr   e r   U/home/ubuntu/.local/lib/python3.10/site-packages/torch_memory_saver/binary_wrapper.py__init__   s   zBinaryWrapper.__init__taginteresting_regionenable_cpu_backupc                C   s.   | j |d | j | | j | d S )Nzutf-8)r   tms_set_current_tagencodetms_set_interesting_regiontms_set_enable_cpu_backup)r   r   r   r   r   r   r   
set_config   s   zBinaryWrapper.set_configN)__name__
__module____qualname__strr   boolr   r   r   r   r   r      s    	r   c                 C   sT   t jg| j_t jg| j_t j| j_t jg| j_t j| j	_t jg| j
_t jg| j_dS )z,Define function signatures for the C libraryN)r   c_char_pr   argtypesc_boolr   tms_get_interesting_regionrestyper   tms_get_enable_cpu_backup	tms_pause
tms_resume)r   r   r   r   r
      s   

r
   )r   logging	getLoggerr   r   r   r
   r   r   r   r   <module>   s
    
