
                             S SK r S SKrS SKJrJrJrJrJr  \" S5      r\" S5      r	 " S S\\\	4   5      r
 " S S\\\	4   5      rg)	    N)GenericTypeVarCallableDict	Awaitable_Key_Clientc                       \ rS rSr% \\/\4   r\\/S4   r\\	S'   \\	S'   \
R                  \	S'   \\\4   \	S'   S 4S\S	\4S
 jjrS\S\4S jrS\S\4S jrS rS rSrg)ClientMultiplexer   N_factory_closer_lock_live_clientsc                 (    U R                  S S S 5      $ N)__exit__clients    Rlib/third_party/google/cloud/pubsublite/cloudpubsub/internal/client_multiplexer.py<lambda>ClientMultiplexer.<lambda>#   s    vtT4/P    factorycloserc                 ^    Xl         X l        [        R                  " 5       U l        0 U l        g r   )r   r   	threadingLockr   r   selfr   r   s      r   __init__ClientMultiplexer.__init__    s$    
  ^^%
r   keyreturnc                     U R                      XR                  ;  a  U R                  U5      U R                  U'   U R                  U   sS S S 5        $ ! , (       d  f       g = fr   )r   r   r   )r    r#   s     r   get_or_createClientMultiplexer.get_or_create*   sF    ZZ,,,*.--*<""3'%%c* ZZs   <A
A!r   c                     U R                      XR                  ;  a
   S S S 5        g U R                  U   nX2La
   S S S 5        g U R                  U	 S S S 5        U R                  U5        g ! , (       d  f       N = fr   )r   r   r   )r    r#   r   current_clients       r   	try_eraseClientMultiplexer.try_erase0   sl    ZZ,,, Z "//4N+ Z ""3'  	V Zs   A+A+A++
A9c                     U $ r    r    s    r   	__enter__ClientMultiplexer.__enter__:   s    r   c                     U R                      U R                  n0 U l        S S S 5        WR                  5        H  u  pVU R                  U5        M     g ! , (       d  f       N9= fr   )r   r   itemsr   r    exc_typeexc_valexc_tblive_clientstopicr   s          r   r   ClientMultiplexer.__exit__=   sL    ZZ--L!#D  *//1MELL  2 Zs   A
A")r   r   r   r   )__name__
__module____qualname____firstlineno__r   r   r	   _OpenedClientFactory_ClientCloser__annotations__r   r   r   r!   r&   r*   r/   r   __static_attributes__r-   r   r   r   r      s    #TFGO4gY_-M"">>g&&
 !Q %   + +' +T 7 !r   r   c                       \ rS rSr% \\/\\   4   r\\/\S   4   r	\\
S'   \	\
S'   \\\\   4   \
S'   S 4S\S\	4S	 jjrS
\S\4S jrS
\S\4S jrS rS rSrg)AsyncClientMultiplexerF   Nr   r   r   c                 (    U R                  S S S 5      $ r   )	__aexit__r   s    r   r   AsyncClientMultiplexer.<lambda>Q   s    v/?/?dD/Qr   r   r   c                 *    Xl         X l        0 U l        g r   )r   r   r   r   s      r   r!   AsyncClientMultiplexer.__init__N   s    
  r   r#   r$   c                 H  #    XR                   ;  a2  [        R                  " U R                  U5      5      U R                   U'   U R                   U   n UI S h  vN $  N! [         a5  nXR                   ;   a  U R                   U   UL a  U R                   U	 UeS nAff = f7fr   )r   asyncioensure_futurer   BaseException)r    r#   futurees       r   r&   $AsyncClientMultiplexer.get_or_createW   s     (((&-&;&;DMM#<N&ODs###C(	<< 	(((T-?-?-D-N&&s+G	s<   AB"A  AA  B"A   
B*0BBB"r   c                    #    XR                   ;  a  g U R                   U   nUI S h  vN nXBLa  g XR                   ;  d  U R                   U   ULa  g U R                   U	 U R                  U5      I S h  vN   g  NR N7fr   )r   r   )r    r#   r   client_futurer)   s        r   r*    AsyncClientMultiplexer.try_eraseb   s     (((**3/,,' )))!!#&m;s#ll6""" - 	#s"   %A>A:AA>4A<5A><A>c                    #    U $ 7fr   r-   r.   s    r   
__aenter__!AsyncClientMultiplexer.__aenter__r   s
     s   c                    #    U R                   n0 U l         UR                  5        H&  u  pVU R                  UI S h  vN 5      I S h  vN   M(     g  N N7fr   )r   r2   r   r3   s          r   rF    AsyncClientMultiplexer.__aexit__u   sG     )))//1ME,,V|,,, 2+,s!   9AA
AA
AA)r   r   r   )r:   r;   r<   r=   r   r   r   r	   r>   r?   r@   r   r!   r&   r*   rU   rF   rA   r-   r   r   rC   rC   F   s    #TFIg,>$>?gY	$78M""i0011
 !R %   	t 	 	#4 # # -r   rC   )rK   r   typingr   r   r   r   r   r   r	   r   rC   r-   r   r   <module>rZ      sQ      > >v
)
,!g. ,!^4-WT7]3 4-r   