
    Hmd                         d dl Z d dl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mZmZmZmZ  e ed          ed          Zd	 Zd
 ZddZd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )    N)CDLLRTLD_GLOBAL	get_errnobyrefc_ulong)find_library)ChangelogExceptionChangelogHistoryNotAvailable)gr_cl_history_changelog
gr_cl_donegr_create_string_buffergr_cl_registergr_cl_history_donebytearray_to_strgfchangelogT)mode	use_errnoc                  b    t                      } t          | t          j        |                     )N)r   r	   osstrerror)errns    G/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/libgfchangelog.py_raise_changelog_errr      s%    ;;D
T2;t#4#4
5
55    c                  b    t                               d           dk    rt                       d S d S N)libgfcgf_changelog_initr    r   r   _initr!       s5    %%++ ,+r   c                     t                       t          t          | ||||          }|dk    rt                       d S d S r   )r!   r   r   r   )brickpathlog_file	log_levelretriesrets         r   registerr)   %   sD    	GGG
h	7
K
KC
byy yr   c                  d    t                                           } | dk    rt                       d S d S r   )r   gf_changelog_scanr   r(   s    r   scanr-   .   s5    

"
"
$
$C
byy yr   c                  d    t                                           } | dk    rt                       d S d S r   )r   gf_changelog_start_freshr   r,   s    r   
startfreshr0   4   s5    

)
)
+
+C
byy yr   c                  6   d } g }t          d          }t          j        }	  ||d          }|dv rn5t          |j        d |dz
                     }|                    |           F|dk    rt                       t                       t          ||           S )Nc                 8    |                      d          d         S N.r   splitcfiles    r   clsortzgetchanges.<locals>.clsort;       {{3##r      Tr   r      r   key)	r   r   gf_changelog_next_changer   rawappendr   r0   sortedr9   changesbufcallr(   results         r   
getchangesrI   :   s    $ $ $ G
!$
'
'C*Dd3oo'>> "#'(37("344v byy LLL'v&&&&r   c                 \    t          t          |           }|dk    rt                       d S d S r   )r   r   r   clfiler(   s     r   donerM   T   s3    
VV
$
$C
byy yr   c                  `    t                                           } | dk    rt                       | S r   )r   gf_history_changelog_scanr   r,   s    r   history_scanrP   Z   s-    

*
*
,
,C
byyJr   c           
          t                      }t          t          | |||t          |                    }|dk    rt	                       |dk    rt                      ||j        fS )Nr   )r   r   r   r   r   r
   value)changelog_pathstartendnum_parallel
actual_endr(   s         r   history_changelogrY   b   si    J
!&.%".j0A0AC CC
byy
byy*,,,!""r   c                  d    t                                           } | dk    rt                       d S d S r   )r    gf_history_changelog_start_freshr   r,   s    r   history_startfreshr\   o   s5    

1
1
3
3C
byy yr   c                     d } g }t          d          }t          j        }	  ||d          }|dv rn5t          |j        d |dz
                     }|                    |           F|dk    rt                       t          ||           S )Nc                 8    |                      d          d         S r3   r5   r7   s    r   r9   z"history_getchanges.<locals>.clsortv   r:   r   r;   Tr<   r=   r   r>   )r   r    gf_history_changelog_next_changer   rA   rB   r   rC   rD   s         r   history_getchangesr`   u   s    $ $ $ G
!$
'
'C2Dd3oo'>> "#'(37("344v byy'v&&&&r   c                 \    t          t          |           }|dk    rt                       d S d S r   )r   r   r   rK   s     r   history_donerb      s3    
VV
,
,C
byy yr   )r   ) r   ctypesr   r   r   r   r   ctypes.utilr   
syncdutilsr	   r
   py2py3r   r   r   r   r   r   r   r   r!   r)   r-   r0   rI   rM   rP   rY   r\   r`   rb   r    r   r   <module>rg      s   
			 ? ? ? ? ? ? ? ? ? ? ? ? ? ? $ $ $ $ $ $ G G G G G G G G: : : : : : : : : : : : : : : :
 
L	
 
 
6 6 6
  
       ' ' '4    
# 
# 
#  ' ' '.    r   