File: //usr/lib/python3/dist-packages/jeepney/io/__pycache__/asyncio.cpython-310.pyc
o
��a� � @ s� d dl Z d dlZd dlmZ d dlmZ d dlmZmZ d dl m
Z
d dlmZm
Z
mZ d dlmZmZ d dlmZ d d
lmZmZmZmZmZ G dd� d�Zddd�ZG dd� d�ZG dd� d�ZG dd� de�ZdS )� N)�count)�Optional)�
Authenticator�BEGIN)�get_bus)�Message�MessageType�Parser)� ProxyBase�
unwrap_msg)�message_bus� )�MessageFilters�FilterHandle�ReplyMatcher�RouterClosed�check_replyablec @ s` e Zd ZdZdejdejfdd�Zdd�defd d
�Z defdd
�Z
dd� Zdd� Zdd� Z
dS )�DBusConnectionaP A plain D-Bus connection with no matching of replies.
This doesn't run any separate tasks: sending and receiving are done in
the task that calls those methods. It's suitable for implementing servers:
several worker tasks can receive requests and send replies.
For a typical client pattern, see :class:`DBusRouter`.
�reader�writerc C s4 || _ || _t� | _tdd�| _d | _t�� | _ d S )Nr
)�start)
r r r �parserr �outgoing_serial�unique_name�asyncio�Lock� send_lock)�selfr r � r �4/usr/lib/python3/dist-packages/jeepney/io/asyncio.py�__init__ s zDBusConnection.__init__N��serial�messagec � sv �| j 4 I dH �& |du rt| j�}| j�|�|�� | j�� I dH W d �I dH dS 1 I dH s4w Y dS )z.Serialise and send a :class:`~.Message` objectN)r �nextr r �write� serialise�drain�r r# r"