%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3.9/site-packages/dasbus/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3.9/site-packages/dasbus/__pycache__/unix.cpython-39.opt-1.pyc

a

�icb"�@s�ddlZddlmZddlmZmZddlmZddlm	Z	ddl
Z
e
�dd�ddlm
Z
e�e�Zd	d
gZdd�Ze
jd
�dd�ZGdd�de�ZGdd	�d	e�ZGdd
�d
e	�ZdS)�N)�DBUS_FLAG_NONE)�VariantUnpacking�get_variant)�
GLibClient)�
GLibServer�Gioz2.0)r�GLibClientUnix�GLibServerUnixcsD|durdSg��fdd�}t�||�}�s4|dfS|tj���fS)a�Acquire Unix file descriptors contained in a variant.

    Return a variant with indexes into a list of Unix file descriptors
    and the list of Unix file descriptors.

    If the variant is None, or the variant doesn't contain any Unix
    file descriptors, return None instead of the list.

    :param variant: a variant with Unix file descriptors
    :return: a variant with indexes and a list of Unix file descriptors
    N)NNcs��|�t��dS)N�)�append�len)�fd��fd_list��//usr/lib/python3.9/site-packages/dasbus/unix.py�_get_idx9s
zacquire_fds.<locals>._get_idx)�
UnixFDSwap�applyr�
UnixFDListZnew_from_array)�variantrZvariant_without_fdsrrr�acquire_fds(srrcs@|durdS�dur|S�����s(|S�fdd�}t�||�S)a5Restore Unix file descriptors in a variant.

    If the variant is None, return None. Otherwise, return
    a variant with Unix file descriptors.

    :param variant: a variant with indexes into fd_list
    :param fd_list: a list of Unix file descriptors
    :return: a variant with Unix file descriptors
    Ncs$z
�|WStyYdS0dS)N���)�
IndexError)�indexrrr�_get_fdZs
zrestore_fds.<locals>._get_fd)Z	steal_fdsrr)rrrrrr�restore_fdsEs
rc@s@eZdZdZedd��Zedd��Zedd��Zedd	��Zd
S)rz-Class for swapping values of the UnixFD type.cCs|�||�S)aASwap unix file descriptors with indices.

        The provided function should swap a unix file
        descriptor with an index into an array of unix
        file descriptors or vice versa.

        :param variant: a variant to modify
        :param swap: a swapping function
        :return: a modified variant
        )�_recreate_variant)�clsr�swaprrrrfszUnixFDSwap.applycGs|j|��g|�R�S)zHandle a variant.)rr)rr�extrasrrr�_handle_varianttszUnixFDSwap._handle_variantcGs,|��}|dkr$|^}}||���S|��S)zHandle a basic value.�h)�get_type_stringZ
get_handle�unpack)rrr �type_stringr�_rrr�
_handle_valueys
zUnixFDSwap._handle_valuecGs8|��}d|vrd|vr|S|j|g|�R�}t||�S)z%Create a variant with swapped values.r"�v)r#Z_process_variantr)rrr r%�valuerrrr�s
zUnixFDSwap._recreate_variantN)	�__name__�
__module__�__qualname__�__doc__�classmethodrr!r'rrrrrrcs




rc@sFeZdZdZeeejfdd��Zedeejfdd��Z	edd��Z
d	S)
rz0The low-level DBus client library based on GLib.c
Cs0t|�\}}
|�||||||||	|
d�
}t|�S)zVSynchronously call a DBus method.

        :return: a result of the DBus call
        N)rZcall_with_unix_fd_list_syncr)r�
connection�service_name�object_path�interface_name�method_name�
parameters�
reply_type�flags�timeoutr�resultrrr�	sync_call�s	�zGLibClientUnix.sync_callrc

Cs6t|�\}}|j|||||||
|||j||	fd�dS)z"Asynchronously call a DBus method.)�callback�	user_dataN)rZcall_with_unix_fd_list�_async_call_finish)
rr/r0r1r2r3r4r5r:�
callback_argsr6r7rrrr�
async_call�s�zGLibClientUnix.async_callcs*|\}}��fdd�}||g|�R�dS)z(Finish an asynchronous DBus method call.cs����}t|�S)N)Zcall_with_unix_fd_list_finishr)r8��
result_object�
source_objectrr�_finish_call�s�z7GLibClientUnix._async_call_finish.<locals>._finish_callNr)rrAr@r;r:r=rBrr?rr<�s	z!GLibClientUnix._async_call_finishN)r*r+r,r-r.rrZDBUS_TIMEOUT_NONEr9r>r<rrrrr�s��c@s6eZdZdZed	dd��Zedd��Zedd��ZdS)
r	zXThe low-level DBus server library based on GLib.

    Adds Unix FD Support to base classNcCs0t|�\}}|rt�d�|�|||||�dS)aEmit a DBus signal.

        GLib doesn't seem to support Unix file descriptors in signals.
        Swap Unix file descriptors with indexes into a list of Unix file
        descriptors, but emit just the indexes. Log a warning to inform
        users about the limited support.
        z1Unix file descriptors in signals are unsupported.N)r�logZwarning�emit_signal)rr/r1r2Zsignal_namer4ZdestinationrrrrrD�s
�zGLibServerUnix.emit_signalcCs"|�||�}t|�}|j|�dS)zSet the reply of the DBus call.N)Z_get_reply_valuerZreturn_value_with_unix_fd_list)r�
invocationZout_typeZ	out_valueZreply_valueZ
reply_argsrrr�set_call_reply�szGLibServerUnix.set_call_replyc	Cs8|\}	}
|����}t||�}|	||||g|
�R�dS)z'A method call closure of a DBus object.N)Zget_messageZget_unix_fd_listr)rr/Zsenderr1r2r3r4rEr;r:r=rrrr�_object_callbacks
��zGLibServerUnix._object_callback)N)r*r+r,r-r.rDrFrGrrrrr	�s�
	)ZloggingZdasbus.constantsrZ
dasbus.typingrrZdasbus.client.handlerrZdasbus.server.handlerrZgiZrequire_versionZ
gi.repositoryrZ	getLoggerr*rC�__all__rrrrrr	rrrr�<module>s 
�4I

Zerion Mini Shell 1.0