
    tjn                         d Z  G d d      Zy)SharedArrayBufferc                   r    e Zd ZdZd Zed        Zej                  d        Zd Zd Z	d Z
ed        Zd	 Zy
)
HttpHeaderzHelper class to construct and define http headers for the web server.
    This class is only driving the built-in aiohttp web server.
    But if can be manually leveraged to configure your own server implementation.
    c                      i | _         i | _        y )N)_headers_presetsselfs    >/DATA/.local/lib/python3.12/site-packages/trame_server/http.py__init__zHttpHeader.__init__
   s        c                 B    | j                   j                  t        d      S )z.Return True if the shared array buffer was setF)r   getPRESET_KEY_SHARED_ARRAY_BUFFERr   s    r
   shared_array_bufferzHttpHeader.shared_array_buffer   s     }}  !?GGr   c                 (   t        |      | j                  t        <   | j                  r7| j	                  dd       | j	                  dd       | j	                  dd       y| j                  d       | j                  d       | j                  d       y)z9Enable/Disable http header to support shared array bufferzCross-Origin-Opener-Policyzsame-originzCross-Origin-Embedder-Policyzrequire-corpzAccess-Control-Allow-Origin*N)boolr   r   r   
set_headerremove_header)r	   vs     r
   r   zHttpHeader.shared_array_buffer   sz     9=Q45##OO8-HOO:NKOO93?;<=><=r   c                 "    || j                   |<   y)zSet given header key/value pairNr   )r	   keyvalues      r
   r   zHttpHeader.set_header    s    "cr   c                 X    || j                   v r| j                   j                  |       yy)z#Discard given header key if presentN)r   popr	   r   s     r
   r   zHttpHeader.remove_header$   s%    $--MMc"  r   c                 8    | j                   j                  |      S )z1Return the current header value for the given key)r   r   r   s     r
   
get_headerzHttpHeader.get_header)   s    }}  %%r   c                     | j                   S )z#Return currently configured headersr   r   s    r
   headerszHttpHeader.headers-   s     }}r   c                 2    ddl m} | j                  |_        y)zOnly apply on aiohttp backend    )aiohttpN)wslink.backendsr$   r!   HTTP_HEADERS)r	   r$   s     r
   applyzHttpHeader.apply2   s    +#||r   N)__name__
__module____qualname____doc__r   propertyr   setterr   r   r   r!   r'    r   r
   r   r      sd    
 H H 
>  
>##
&  ,r   r   N)r   r   r.   r   r
   <module>r/      s   !4 2, 2,r   