
    g                     \    d dl Z d dlZd dlmZmZ  ej
                  e      Z G d d      Zy)    N)CallableOptionalc                   @    e Zd Zdedeegef   fdZd Zd ZdefdZ	y)	
AsyncTimercallback
timer_calcc                 <    || _         || _        d | _        d| _        y )Nr   )r   r   timertries)selfr   r   s      J/var/www/openai/venv/lib/python3.12/site-packages/realtime/_async/timer.py__init__zAsyncTimer.__init__	   s     $-1

    c                     d| _         | j                  rR| j                  j                         s7| j                  j                          d | _        t        j                  d       y y y )Nr   zEAsyncTimer has been reset and any scheduler tasks have been cancelled)r   r
   donecancelloggerdebug)r   s    r   resetzAsyncTimer.reset   sJ    
::djjoo/JJDJLLW 0:r   c                 :   | j                   r| j                   j                          | xj                  dz  c_        | j                  | j                  dz         }t        j                  d| d       t        j                  | j                  |            | _         y )N   z!Scheduling callback to run after z	 seconds.)	r
   r   r   r   r   r   asynciocreate_task
_run_timer)r   delays     r   schedule_timeoutzAsyncTimer.schedule_timeout   sm    ::JJ

a


Q/8yIJ(()?@
r   r   c                 .  K   	 t        j                  |       d {    | j                          d {    y 7 7 # t         j                  $ r t        j                  d       Y y t        $ r"}t        j                  d|        Y d }~y d }~ww xY ww)NzAsyncTimer task was cancelled.zError in AsyncTimer callback: )r   sleepr   CancelledErrorr   r   	Exception	exception)r   r   es      r   r   zAsyncTimer._run_timer!   s{     	C--&&&--/!! '!%% 	;LL9: 	C=aSABB	CsO   B> :> <> B> > (B&B(B0BBBBN)
__name__
__module____qualname__r   intr   r   r   floatr    r   r   r   r      s9     xs
7K ACe Cr   r   )	r   loggingtypingr   r   	getLoggerr#   r   r   r(   r   r   <module>r,      s,      %			8	$ C  Cr   