
    \j                     n    d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZ ddlmZmZmZ  G d de      Zy	)
z2
Default implementation of the polling component.
    )Event)Config)RepeatingTask)UnsuccessfulResponseExceptionhttp_error_messageis_http_error_recoverablelog)FeatureRequesterFeatureStoreUpdateProcessorc                   <    e Zd ZdedededefdZd Zd Z	d Z
d	 Zy
)PollingUpdateProcessorconfig	requesterstorereadyc                     || _         || _        || _        || _        t	        |j
                  d| j                        | _        y )Nr   )_config
_requester_store_readyr   poll_interval_poll_task)selfr   r   r   r   s        J/root/env/lib/python3.12/site-packages/ldclient/impl/datasource/polling.py__init__zPollingUpdateProcessor.__init__   s8    #"6#7#7DJJG
    c                     t        j                  dt        | j                  j                        z          | j
                  j                          y )Nz7Starting PollingUpdateProcessor with request interval: )r	   infostrr   r   r   startr   s    r   r"   zPollingUpdateProcessor.start   s6    JSQUQ]Q]QkQkMllm

r   c                 n    | j                   j                         du xr | j                  j                  du S )NT)r   is_setr   initializedr#   s    r   r&   z"PollingUpdateProcessor.initialized   s.    {{!!#t+O0G0G40OOr   c                 b    t        j                  d       | j                  j                          y )NzStopping PollingUpdateProcessor)r	   r    r   stopr#   s    r   r(   zPollingUpdateProcessor.stop   s    23

r   c                    	 | j                   j                         }| j                  j                  |       | j                  j                         sG| j                  j                  r0t        j                  d       | j                  j                          y y y # t        $ r}t        |j                  d      }t        |j                        rt        j                  |       nDt        j                  |       | j                  j                          | j!                          Y d }~y Y d }~y d }~wt"        $ r"}t        j$                  d|z         Y d }~y d }~ww xY w)Nz%PollingUpdateProcessor initialized okzpolling requestz4Error: Exception encountered when updating flags. %s)r   get_all_datar   initr   r%   r&   r	   r    setr   r   statusr   warningerrorr(   	Exception	exception)r   all_dataehttp_error_message_results       r   r   zPollingUpdateProcessor._poll!   s    	L335HKKX&;;%%'DKK,C,C@A! -D' - 	(:188EV(W%(256		34!			 7
  	LMMFJL L	Ls%   BB 	E"B D,,E8EEN)__name__
__module____qualname__r   r
   r   r   r   r"   r&   r(   r    r   r   r   r      s@    Hv H2B H< H`e HPLr   r   N)__doc__	threadingr   ldclient.configr   ldclient.impl.repeating_taskr   ldclient.impl.utilr   r   r   r	   ldclient.interfacesr
   r   r   r   r8   r   r   <module>r?      s/   
  " 6 p p O O$L_ $Lr   