o
    j(                     @   s\   d dl Z d dlZd dlT G dd dejZG dd dejZG dd dZG d	d
 d
ZdS )    N)*c                   @   s   e Zd ZdZdZdS )ReadFlag      N)__name__
__module____qualname__SMB2_READFLAG_READ_UNBUFFERED SMB2_READFLAG_REQUEST_COMPRESSED r   r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/protocol/smb2/commands/read.pyr      s    r   c                   @   s   e Zd ZdZdZdZdS )Channelr   r   r   N)r   r   r   SMB2_CHANNEL_NONESMB2_CHANNEL_RDMA_V1SMB2_CHANNEL_RDMA_V1_INVALIDATEr   r   r   r   r   
   s    r   c                   @   <   e Zd Zdd Zdd Zedd Zedd Zd	d
 ZdS )READ_REQc                 C   sT   d| _ d| _d| _d | _d | _d | _d | _tj| _d | _	d| _
d| _d | _d | _d S )N1   P   r   )StructureSizePaddingFlagsLengthOffsetFileIdMinimumCountr   r   RemainingBytesReadChannelInfoOffsetReadChannelInfoLengthBufferReadChannelInfoselfr   r   r   __init__   s   
zREAD_REQ.__init__c                 C   s<  | j r| j  | _d| _t| j  | _| jjdddd}|| jjdddd7 }|| jjdddd7 }|| j	jdddd7 }|| j
jdddd7 }|| jjd	ddd7 }|| jjdddd7 }|| jjjdddd7 }|| jjdddd7 }|| jjdddd7 }|| jjdddd7 }| jd
kr|| j7 }|S |d7 }|S )Nn   r   littleF)	byteordersignedr            r       )r    to_bytesr   r   lenr   r   r   r   r   r   r   r   r   valuer   r"   tr   r   r   r,   #   s(   

zREAD_REQ.to_bytesc                 C   s   t t| S N)r   from_bufferioBytesIO)bbuffr   r   r   
from_bytes:   s   zREAD_REQ.from_bytesc                 C   sF  t  }tj| ddd|_|jdksJ tj| ddd|_ttj| ddd|_tj| ddd|_tj| ddd|_	tj| ddd|_
tj| ddd|_ttj| ddd|_tj| ddd|_tj| ddd|_tj| ddd|_|jd	kr| |jtj | |j|_|j |_|S )
Nr   r%   r&   r   r   r(   r)   r*   r   )r   intr6   readr   r   r   r   r   r   r   r   r   r   r   r   seekr3   SEEK_SETr   r    buffmsgr   r   r   r2   >   s$   
zREAD_REQ.from_bufferc                 C   s   d}|d| j  7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d	| j 7 }|d
| j 7 }|d| j	 7 }|d| j
 7 }|S )Nz==== SMB2 READ REQ ====
StructureSize: %s
zPadding: %s
zFlags: %s
zLength: %s
zOffset: %s
zFileId: %s
zMinimumCount: %s
zChannel: %s
zRemainingBytes: %s
zReadChannelInfoOffset: %s
zReadChannelInfoLength: %s
)r   r   r   r   r   r   r   r   r   r   r   r/   r   r   r   __repr__V   s   zREAD_REQ.__repr__N	r   r   r   r#   r,   staticmethodr6   r2   r@   r   r   r   r   r      s    

r   c                   @   r   )
READ_REPLYc                 C   s.   d| _ d | _d| _d | _d | _d| _d | _d S )N   r   )r   
DataOffsetReserved
DataLengthDataRemaining	Reserved2r   r!   r   r   r   r#   h   s   
zREAD_REPLY.__init__c                 C   s   d S r1   r   r!   r   r   r   r,   q   s   zREAD_REPLY.to_bytesc                 C   s   t  }tj| d d dd|_tj| dd dd|_| dd |_tj| dd dd|_tj| dd dd|_| dd |_| |jd	 |j|j d	  |_	|S )
Nr   r%   r7      r(   r)      r*   @   )
rC   r8   r6   r   rE   rF   rG   rH   rI   r   )r5   r>   r   r   r   r6   u   s    zREAD_REPLY.from_bytesc                 C   s   t  }tj| ddd|_tj| ddd|_| d|_tj| ddd|_tj| ddd|_| d|_	| 
|jtj | |j|_|S )Nr   r%   r7   r   r(   )rC   r8   r6   r9   r   rE   rF   rG   rH   rI   r:   r3   r;   r   r<   r   r   r   r2      s   zREAD_REPLY.from_bufferc                 C   sN   d}|d| j  7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|S )Nz==== SMB2 READ REPLY ====
r?   zDataOffset: %s
zDataLength: %s
zDataRemaining: %s
zBuffer: %s
)r   rE   rG   rH   r   r/   r   r   r   r@      s   zREAD_REPLY.__repr__NrA   r   r   r   r   rC   g   s    	

rC   )	r3   enumaiosmb.wintypes.access_maskIntFlagr   Enumr   r   rC   r   r   r   r   <module>   s    W