o
    Žõ±j8  ã                   @   s2   d dl Z d dlZd dlmZmZ G dd„ dƒZdS )é    N)ÚSMB2CompressionTypeÚSMB2CompressionFlagsc                   @   s6   e Zd Zdd„ Zeddd„ƒZdd„ Zedd	„ ƒZd
S )Ú SMB2Header_COMPRESSION_TRANSFORMc                 C   s"   d| _ d | _d | _d | _d | _d S )Nó   üSMB)Ú
ProtocolIdÚOriginalCompressedSegmentSizeÚCompressionAlgorithmÚFlagsÚOffset)Úself© r   ú›/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/protocol/smb2/headers/compression.pyÚ__init__   s
   
z)SMB2Header_COMPRESSION_TRANSFORM.__init__Fc                 C   s>   t ƒ }||_||_|du rtj|_||_|S tj|_||_|S )NF)r   r   r   r   ÚNONEr	   r
   ÚCHAINED)Ú	comp_dataÚalgoÚoriginal_sizeÚcompressed_sizeÚ
is_chainedÚcomp_hdrr   r   r   Ú	construct   s   ýz*SMB2Header_COMPRESSION_TRANSFORM.constructc                 C   sf   | j }|| jjdddd�7 }|| jjjdddd�7 }|| jjjdddd�7 }|| jjdddd�7 }|S )Né   ÚlittleF©Ú	byteorderÚsignedé   )r   r   Úto_bytesr   Úvaluer	   r
   )r   Útr   r   r   r      s   z)SMB2Header_COMPRESSION_TRANSFORM.to_bytesc                 C   sŒ   t ƒ }|  d¡|_|jdksJ ‚tj|  d¡ddd�|_ttj|  d¡ddd�ƒ|_ttj|  d¡ddd�ƒ|_	tj|  d¡ddd�|_
|S )Nr   r   r   Fr   r   )r   Úreadr   ÚintÚ
from_bytesr   r   r   r   r	   r
   )ÚbuffÚhdrr   r   r   Úfrom_buffer&   s   z,SMB2Header_COMPRESSION_TRANSFORM.from_bufferN)F)Ú__name__Ú
__module__Ú__qualname__r   Ústaticmethodr   r   r&   r   r   r   r   r      s    	r   )ÚenumÚioÚ'aiosmb.protocol.smb2.commands.negotiater   r   r   r   r   r   r   Ú<module>   s    