
    -i                         d Z ddlZddlZddlZddlZ	 ddlmZ n# e$ r	 ddlmZ Y nw xY w G d de	          Z
 G d d          Z G d d	e          Z G d
 de          ZdS )zStorage module    N)__version__c                       e Zd ZdS )StorageExceptionN__name__
__module____qualname__     R/var/www/html/speakWrite/venv/lib/python3.11/site-packages/codernitydb3/storage.pyr   r              Dr   r   c                   T    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )DummyStoragez2
    Storage mostly used to fake real storage
    c                     d S Nr
   selfargskwargss      r   createzDummyStorage.create'       r   c                     d S r   r
   r   s      r   openzDummyStorage.open*   r   r   c                     d S r   r
   r   s      r   closezDummyStorage.close-   r   r   c                     d S r   r
   r   s      r   	data_fromzDummyStorage.data_from0   r   r   c                     d S r   r
   r   s      r   data_tozDummyStorage.data_to3   r   r   c                     dS N)r   r   r
   r   s      r   savezDummyStorage.save6       tr   c                      | j         |i |S r   r"   r   s      r   insertzDummyStorage.insert9   s    ty$)&)))r   c                     dS r!   r
   r   s      r   updatezDummyStorage.update<   r#   r   c                     d S r   r
   r   s      r   getzDummyStorage.get?   r#   r   c                     d S r   r
   r   s      r   fsynczDummyStorage.fsyncE   r   r   c                     d S r   r
   r   s      r   flushzDummyStorage.flushH   r   r   N)r   r   r	   __doc__r   r   r   r   r   r"   r&   r(   r*   r,   r.   r
   r   r   r   r   #   s                     * * *          r   r   c                   d    e Zd ZeZddZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZddZd Zd ZdS )
IU_Storagemainc                 >    || _         || _        d| _        d | _        d S )Nd   )db_pathname_header_size_f)r   r5   r6   s      r   __init__zIU_Storage.__init__P   s#    	r   c           	         t           j                            t           j                            | j        | j        dz                       rt          d          t          j        t           j                            | j        | j        dz             d          5 }|	                    t          j        d| j                            d          d                     |                                 d d d            n# 1 swxY w Y   t          j        t           j                            | j        | j        dz             dd	          | _        |                                  | j                            dd
           d S )N_storzStorage already exists!wb10s90sutf8s   |||||r+br   	buffering   )ospathexistsjoinr5   r6   IOErrorior   writestructpackr   encoder   r8   r.   seek)r   fs     r   r   zIU_Storage.createV   su   7>>"',,t|TY5HIIJJ 	53444WRW\\$,	G0CDD  	GGHd&6&=&=f&E&E$& &' ' ' GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 '"',,t|TY5HII$%' ' ' 	

Qs   AC<<D D c                    t           j                            t           j                            | j        | j        dz                       st          d          t          j        t           j                            | j        | j        dz             dd          | _	        | 
                                 | j	                            dd           d S )Nr;   zStorage doesn't exists!r?   r   r@   rB   )rC   rD   rE   rF   r5   r6   rG   rH   r   r8   r.   rM   r   s    r   r   zIU_Storage.opene   s    w~~bgll4<W9LMMNN 	53444'"',,t|TY5HII$%' ' ' 	

Qr   c                     t          j        t           j                            | j        | j        dz                        d S )Nr;   )rC   unlinkrD   rF   r5   r6   rP   s    r   destroyzIU_Storage.destroyn   s1    
	"',,t|TY-@AABBBBBr   c                 8    | j                                          d S r   )r8   r   rP   s    r   r   zIU_Storage.closeq       r   c                 *    t          j        |          S r   )marshalloadsr   datas     r   r   zIU_Storage.data_fromv       }T"""r   c                 *    t          j        |          S r   )rW   dumpsrY   s     r   r   zIU_Storage.data_toy   r[   r   c                    |                      |          }| j                            dd           | j                                        }t	          |          }| j                            |           |                                  ||fS )Nr   rB   )r   r8   rM   telllenrI   r.   )r   rZ   s_datastartsizes        r   r"   zIU_Storage.save|   sn    d##Q6{{f

d{r   c                 ,    |                      |          S r   r%   rY   s     r   r&   zIU_Storage.insert       yyr   c                 ,    |                      |          S r   r%   rY   s     r   r(   zIU_Storage.update   re   r   cc                     |dk    rd S t          t                                 | j                            |           |                     | j                            |                    S )Nd)printlocalsr8   rM   r   read)r   rb   rc   statuss       r   r*   zIU_Storage.get   sS    S==4fhhU~~dgll400111r   c                 8    | j                                          d S r   )r8   r.   rP   s    r   r.   zIU_Storage.flush   rU   r   c                 \    t          j        | j                                                   d S r   )rC   r,   r8   filenorP   s    r   r,   zIU_Storage.fsync   s$    
!!"""""r   N)r2   )rg   )r   r   r	   r   r9   r   r   rS   r   r   r   r"   r&   r(   r*   r.   r,   r
   r   r   r1   r1   L   s        K       C C C  
# # ## # #      2 2 2 2  # # # # #r   r1   c                       e Zd ZdS )StorageNr   r
   r   r   rr   rr      r   r   rr   )r/   rC   rJ   rW   rH   codernitydb3r   ImportErrorr9   	Exceptionr   r   objectr1   rr   r
   r   r   <module>rw      s8  $   				   				%((((((( % % %$$$$$$$$%	 	 	 	 	y 	 	 	& & & & & & & &RJ# J# J# J# J# J# J# J#b	 	 	 	 	j 	 	 	 	 	s    ))