U
    Z+d.                     @   s.   d Z ddlmZ ddlmZ G dd dZdS )z,Implementation for the app.events shortcuts.    )contextmanager)cached_propertyc                   @   sX   e Zd ZdZdZdZdZdddZedd	 Z	ed
d Z
edd ZedddZdS )EventszImplements app.events.z$celery.events.receiver:EventReceiverz(celery.events.dispatcher:EventDispatcherzcelery.events.state:StateNc                 C   s
   || _ d S )N)app)selfr    r   5/tmp/pip-unpacked-wheel-ucduq0nd/celery/app/events.py__init__   s    zEvents.__init__c                 C   s   | j j| jddS )Nzevents.Receiverreverse)r   subclass_with_selfreceiver_clsr   r   r   r   Receiver   s     zEvents.Receiverc                 C   s   | j j| jddS )Nzevents.Dispatcherr
   )r   r   dispatcher_clsr   r   r   r   
Dispatcher   s     zEvents.Dispatcherc                 C   s   | j j| jddS )Nzevents.Stater
   )r   r   	state_clsr   r   r   r   State   s     zEvents.StateTFc              
   c   sJ   | j jjjdd.}| |j|||j|}|V  W 5 Q R X W 5 Q R X d S )NT)block)r   ZamqpZproducer_poolacquirer   
connectionZchannel)r   hostnameZenabledZbuffer_while_offlineproddr   r   r   default_dispatcher    s     zEvents.default_dispatcher)N)NTF)__name__
__module____qualname____doc__r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r      s   



  r   N)r   
contextlibr   Zkombu.utils.objectsr   r   r   r   r   r   <module>   s   