Mini Shell
3
V]�_�= � @ s� d dl mZmZ d dlmZ d dlmZ d dlmZ d dl m
Z
d dlmZ d dl
mZ d dlmZmZmZ d d lZejd
d� ejdd� d d
lmZmZ dddgZG dd� de�ZG dd� ded�ZG dd� de�Zd S )� )�ABCMeta�abstractmethod)�partial)�
PropertyProxy)�ErrorMapper)�Signal)�DBUS_FLAG_NONE)�DBusSpecification)�get_variant�get_variant_type�unwrap_variantN�Gioz2.0�GLib)r
r �
GLibClient�AbstractClientObjectHandler�ClientObjectHandlerc @ s� e Zd ZdZejZeeefdd��Z ef eefdd��Z
edd� �Zef efdd ��Zed
d� �Z
edd
� �Zedd� �Zedd� �Zedd� �ZdS )r z0The low-level DBus client library based on GLib.c
C s |j |||||||| d� S )zVSynchronously call a DBus method.
:return: a result of the DBus call
N)Z call_sync)
�cls�
connection�service_name�object_path�interface_name�method_name�
parameters�
reply_type�flags�timeout� r �/usr/lib/python3.6/handler.py� sync_call1 s zGLibClient.sync_callc C s( |j |||||||
|| j|| fd�
dS )z"Asynchronously call a DBus method.)�callback� user_dataN)�call�_async_call_finish)r r r r r r r r r �
callback_argsr r r r r �
async_callE s zGLibClient.async_callc s$ |\}}|� �fdd�f|�� dS )z(Finish an asynchronous DBus method call.c s
�j � �S )N)Zcall_finishr )�
result_object�
source_objectr r �<lambda>` s z/GLibClient._async_call_finish.<locals>.<lambda>Nr )r r&