File: //lib/python3/dist-packages/dbus/__pycache__/proxies.cpython-310.pyc
o
�t3b�` � @ s� d dl Z zd dlmZ W n ey d dlmZ Y nw d dlZd dlmZ d dlm Z m
Z
mZmZ dZ
e �d�Zd dlmZmZmZmZmZ d dlmZ G d d
� d
�ZG dd� d�ZG d
d� de�ZG dd� de�ZdS )� N)�RLock)�process_introspection_data)�
DBusException�IntrospectionParserException�MissingErrorHandlerException�MissingReplyHandlerException�restructuredtextzdbus.proxies)�BUS_DAEMON_IFACE�BUS_DAEMON_NAME�BUS_DAEMON_PATH�INTROSPECTABLE_IFACE�
LOCAL_PATH)�is_py2c @ �( e Zd ZdZdd� Zdd� Zdd� ZdS ) �_DeferredMethodzXA proxy method which will only get called once we have its
introspection reply.
c C s || _ |j| _|| _|| _d S �N)�
_proxy_method�_method_name�_append�_block)�self�proxy_method�append�block� r �./usr/lib/python3/dist-packages/dbus/proxies.py�__init__8 s
z_DeferredMethod.__init__c O s@ d|v s
|� dd�r| �| j||� d S | �� | j|i |��S )N�
reply_handler�ignore_replyF)�getr r r �r �args�keywordsr r r �__call__? s
�z_DeferredMethod.__call__c O s | � | j||� d S r )r r r r r r �
call_asyncJ s z_DeferredMethod.call_asyncN��__name__�
__module__�__qualname__�__doc__r r# r$ r r r r r 4 s
r c @ r ) �_ProxyMethodz�A proxy method.
Typically a member of a ProxyObject. Calls to the
method produce messages that travel over the Bus and are routed
to a specific named Service.
c C sX |t kr
tdt ��|| _|| _|| _|| _t�|� || _|d ur't� |� || _
d S )Nz1Methods may not be called on the reserved path %s)r
r �_proxy�_connection�_named_service�_object_path�_dbus_bindings�validate_member_namer �validate_interface_name�_dbus_interface)r �proxy�
connection�bus_name�object_path�method_name�ifacer r r r U s �
z_ProxyMethod.__init__c O s |� dd �}|� dd �}|� dd�}|� dd �}|d us |d ur4|d u r't� �|d u r.t� �|r4td��|� d| j�}|d u rV|d u rG| j}n|d | j }| jj�|d �}|s\|d urr| j j
| j| j|| j||||fi |�� d S | j j
| j| j|| j||fi |��S ) Nr �
error_handlerr F� signaturez6ignore_reply and reply_handler cannot be used together�dbus_interface�.)�popr r � TypeErrorr2 r r+ �_introspect_method_mapr r, r$ r- r. �
call_blocking) r r! r"