3
=ÕÇh1  ã               @   s   d dl Z G dd„ deƒZdS )é    Nc               @   s*   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	S )ÚINODEzV
	INPUT:
		pg: page reader
		inode no: inode number, default 2
	RETURN:
		INODE LIST
	é   c             C   s   || _ || _g | _| jƒ  d S )N)ÚpgÚinodenoÚsegÚinit)Úselfr   r   © r	   ú</root/work/ibd2sql-ibd2sql-v2.x/ibd2sql/innodb_page/inode.pyÚ__init__   s    zINODE.__init__c             C   s   t jd|d d… ƒd t jd|dd… ƒd t jd|dd… ƒt jd|dd… ƒt jd|dd	… ƒt jd|d	d
… ƒd t jd|d
d… ƒdœS )Nz>Qé   r   z>Lé   z>LLHLHé   é,   é<   é@   z>32LéÀ   )ZFSEG_IDZFSEG_NOT_FULL_N_USEDZ	FSEG_FREEZFSEG_NOT_FULLZ	FSEG_FULLÚ
FSEG_MAGICÚFSEG_FRAG_ARR)ÚstructÚunpack)r   Údatar	   r	   r
   Ú_segment   s    zINODE._segmentc       	      C   sÜ   | j }xÐ| jj|ƒ}tjd|dd… ƒ}tjd|dd… ƒ}|d }d}xxt| jjd d ƒD ]`}| j|||d … ƒ}|d7 }| j|||d … ƒ}|d7 }|d d	kr¼| jj	||gƒ q^P q^W |d
ksÒ|dkrP qW d S )Nz>LHé&   r   é2   r   r   r   r   iÒiÖl   ÿÿ )
r   r   Úreadr   r   ÚrangeÚ	PAGE_SIZEr   r   Úappend)	r   Z
nextpagenor   Z	INODE_PREZ
INODE_NEXTÚoffsetÚ_Zseg1Zseg2r	   r	   r
   r      s"    z
INODE.initN)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r	   r	   r	   r
   r      s   
r   )r   Úobjectr   r	   r	   r	   r
   Ú<module>   s   