
    H                     N    d dl mZ d dlmZ d dlmZ d dlmZmZ  G d de      Z	y)    )Future)Mapping)ManagedEventLoop)SinglePublisherAsyncSinglePublisherc            	       l     e Zd ZU eed<   eed<   def fdZ	 ddedede	eef   dd	fd
Z
d Zd Z xZS )SinglePublisherImpl_managed_loop_underlying
underlyingc                 P    t         |           t        d      | _        || _        y )NPublisherLoopThread)super__init__r   r
   r   )selfr   	__class__s     Nlib/third_party/google/cloud/pubsublite/cloudpubsub/internal/publisher_impl.pyr   zSinglePublisherImpl.__init__   s$    -.CD%    dataordering_keyattrsreturnzFuture[str]c                 r    | j                   j                   | j                  j                  d||d|      S )N)r   r    )r
   submitr   publish)r   r   r   r   s       r   r   zSinglePublisherImpl.publish$   s=     !!(($D$$S$\SUS
 	
r   c                     | j                   j                          | j                   j                  | j                  j	                               j                          | S N)r
   	__enter__r   r   
__aenter__result)r   s    r   r   zSinglePublisherImpl.__enter__+   sE    $$&!!$"2"2"="="?@GGIr   c                     | j                   j                  | j                  j                  |||            j	                          | j                   j                  |||       y r   )r
   r   r   	__aexit__r!   __exit__)r   _SinglePublisherImpl__exc_type_SinglePublisherImpl__exc_value_SinglePublisherImpl__tracebacks       r   r$   zSinglePublisherImpl.__exit__0   sM    !!&&z;L	

&(##J[Ir   ) )__name__
__module____qualname__r   __annotations__r   r   bytesstrr   r   r   r$   __classcell__)r   s   @r   r	   r	      sZ    ##%%&#7 & 02

),
<CCH<M
	

Jr   r	   N)
concurrent.futuresr   typingr   ?google.cloud.pubsublite.cloudpubsub.internal.managed_event_loopr   =google.cloud.pubsublite.cloudpubsub.internal.single_publisherr   r   r	   r   r   r   <module>r4      s%    & J/ Jr   