o
    CD©if  ã                   @   sJ   d dl Z G dd„ deƒZG dd„ deƒZG dd„ dƒZG dd	„ d	eƒZdS )
é    Nc                   @   s   e Zd ZdS )ÚNMBErrorN)Ú__name__Ú
__module__Ú__qualname__© r   r   úH/var/www/Datamplify/venv/lib/python3.10/site-packages/nmb/nmb_structs.pyr      s    r   c                   @   s   e Zd ZdZdS )ÚNotConnectedErrorz]
    Raisd when the underlying NMB connection has been disconnected or not connected yet
    N)r   r   r   Ú__doc__r   r   r   r   r      s    r   c                   @   s2   e Zd ZdZe e¡Zdd„ Zdd„ Zdd„ Z	dS )	ÚNMBSessionMessagez>BBHc                 C   s   |   ¡  d S )N)Úreset©Úselfr   r   r   Ú__init__   s   zNMBSessionMessage.__init__c                 C   s   d| _ d| _d| _d S )Nr   Ú )ÚtypeÚflagsÚdatar   r   r   r   r      s   
zNMBSessionMessage.resetc                 C   s˜   t |ƒ}||| j k rdS |  ¡  t | j|||| j … ¡\| _| _}| jd@ r-|dO }||| j | k r8dS ||| j || j | … | _| j| S )Nr   é   i   )	ÚlenÚHEADER_STRUCT_SIZEr   ÚstructÚunpackÚHEADER_STRUCT_FORMATr   r   r   ©r   r   ÚoffsetÚdata_lenÚlengthr   r   r   Údecode   s   &

zNMBSessionMessage.decodeN)
r   r   r   r   r   Úcalcsizer   r   r   r   r   r   r   r   r
      s    
r
   c                   @   s"   e Zd ZdZe e¡Zdd„ ZdS )ÚDirectTCPSessionMessagez>Ic                 C   s”   t |ƒ}||| j k rdS |  ¡  t | j|||| j … ¡d }|d? dkr+tdƒ‚||| j | k r6dS ||| j || j | … | _| j| S )Nr   é   z6Invalid protocol header for Direct TCP session message)r   r   r   r   r   r   r   r   r   r   r   r   r   1   s    
zDirectTCPSessionMessage.decodeN)r   r   r   r   r   r   r   r   r   r   r   r   r   ,   s    
r   )r   Ú	Exceptionr   r   r
   r   r   r   r   r   Ú<module>   s
    