
    +jn                     $    d Z  G d d          ZdS )SharedArrayBufferc                   |    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d
S )
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 | _        d S )N)_headers_presetsselfs    K/DATA/AppData/hermes/venv/lib/python3.11/site-packages/trame_server/http.py__init__zHttpHeader.__init__
   s        c                 B    | 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GGr   c                 R   t          |          | j        t          <   | j        rD|                     dd           |                     dd           |                     dd           dS |                     d           |                     d           |                     d           dS )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   s     9=Q45# 	>OO8-HHHOO:NKKKOO93?????;<<<=>>><=====r   c                     || j         |<   dS )zSet given header key/value pairNr   )r	   keyvalues      r
   r   zHttpHeader.set_header    s    "cr   c                 P    || j         v r| j                             |           dS dS )z#Discard given header key if presentN)r   popr	   r   s     r
   r   zHttpHeader.remove_header$   s3    $-Mc"""""  r   c                 6    | 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                 *    ddl m} | j        |_        dS )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      s         
   H H XH 
> 
>  
># # ## # #
& & &   X, , , , ,r   r   N)r   r   r.   r   r
   <module>r/      s=   !4 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,r   