
    Hmd
                         d dl Z d dlmZmZmZmZmZmZ d dlm	Z	 d dl
mZmZ d dl
mZmZ d dl
mZ  G d de          Z e e	d	          ed
          ZddZd ZddZd Zd Zd Zd Zd ZdS )    N)CDLLRTLD_GLOBAL	get_errnocreate_string_bufferc_ulongbyref)find_library)bytearray_to_strgf_create_string_buffer)gfind_history_changeloggfind_changelog_register)gfind_history_changelog_donec                       e Zd ZdS )ChangelogExceptionN)__name__
__module____qualname__     A/usr/lib/x86_64-linux-gnu/glusterfs/glusterfind/libgfchangelog.pyr   r      s        Dr   r   gfchangelogT)mode	use_errnoc                 z    t                      }| r| dz   nd}t          ||t          j        |          z             )Nz:  )r   r   osstrerror)prefixerrnprefix_or_emptys      r   raise_oserrr!      s<    ;;D'-5ftmm2O
T?R[5F5F#F
G
GGr   c                  j    t                               d           } | dk    rt          d           d S d S )Ngf_changelog_initr   )libgfcr$   r!   rets    r   cl_initr)      s=    

"
"4
(
(C
byy.////// yr   c                 h    t          t          | ||||          }|dk    rt          d           d S d S )Nr#   gf_changelog_registerr%   )r   r&   r!   )brickpathlog_file	log_levelretriesr(   s         r   cl_registerr1   %   sA    
"65$G
T
TC
byy2333333 yr   c                  d    t                                           } | dk    rt          d           | S )Nr#   gf_history_changelog_scanr%   )r&   r3   r!   r'   s    r   cl_history_scanr4   +   s3    

*
*
,
,C
byy67777Jr   c           
          t                      }t          t          | |||t          |                    }|dk    rt	          d           |j        S )Nr#   gf_history_changelogr%   )r   r   r&   r   r!   value)changelog_pathstartendnum_parallel
actual_endr(   s         r   cl_history_changelogr=   3   sV    J
!&&2&+J&7&79 9C byy12222r   c                  h    t                                           } | dk    rt          d           d S d S )Nr#    gf_history_changelog_start_freshr%   )r&   r?   r!   r'   s    r   cl_history_startfreshr@   >   s;    

1
1
3
3C
byy=>>>>>> yr   c                  $   d } g }t          d          }	 t                              |d          }|dv rn5t          |j        d|dz
                     }|                    |           U|dk    rt          d	           t          || 
          S )z( remove hardcoding for path name length c                 8    |                      d          d         S )N.r#   )split)fs    r   clsortz%cl_history_getchanges.<locals>.clsortF   s    wws||Br   i   T)r   r#   N   r#    gf_history_changelog_next_changer%   )key)r   r&   rH   r
   rawappendr!   sorted)rF   changesbufr(   results        r   cl_history_getchangesrP   D   s          G
!$
'
'C55c4@@'>>!#'(37("344v byy=>>>>'v&&&&r   c                 `    t          t          |           }|dk    rt          d           d S d S )Nr#   gf_history_changelog_doner%   )r   r&   r!   )clfiler(   s     r   cl_history_donerT   Y   s9    
&vv
6
6C
byy6777777 yr   )N)r   )r   ctypesr   r   r   r   r   r   ctypes.utilr	   gfind_py2py3r
   r   r   r   r   OSErrorr   r&   r!   r)   r1   r4   r=   r@   rP   rT   r   r   r   <module>rY      sp   
			 U U U U U U U U U U U U U U U U $ $ $ $ $ $ B B B B B B B B J J J J J J J J 5 5 5 5 5 5	 	 	 	 	 	 	 	 
ll=))t	L	L	LH H H H0 0 04 4 4 4    ? ? ?' ' '*8 8 8 8 8r   