관리-도구
편집 파일: observer.cpython-39.opt-1.pyc
a װ_[ � @ s� d dl Z d dlmZ d dlmZ d dlmZ d dlZe�dd� d dl m Z e �e�Z g d�ZG d d � d e�ZG dd� de�ZG d d� de�ZdS )� N)�partial)�DBUS_FLAG_NONE)�Signal�Gioz2.0)r )�DBusObserverError�DBusObserver�GLibMonitoringc @ s e Zd ZdZdS )r z'Exception class for the DBus observers.N)�__name__� __module__�__qualname__�__doc__� r r �:/usr/lib/python3.9/site-packages/dasbus/client/observer.pyr ( s r c @ sH e Zd ZdZeeddfdd��Zedd� �Zedd� �Zed d � �Z dS )r z4The low-level DBus monitoring library based on GLib.Nc C sT d}d}|rt | j|dfd�}|r4t | j|dfd�}t�|||||�}t | j||�S )z,Watch a service name on the DBus connection.Nr )� user_data)r �_name_appeared_callback�_name_vanished_callbackr Zbus_watch_name_on_connection� _unwatch_name) �cls� connection�name�flagsZ name_appearedZ name_vanishedZname_appeared_closureZname_vanished_closure�registration_idr r r � watch_name0 s0 ����zGLibMonitoring.watch_namec C s |\}}||g|�R � dS )zCallback for watch_name..Nr )r r r Z name_ownerr �callback� callback_argsr r r r Q s z&GLibMonitoring._name_appeared_callbackc C s |\}}||� dS )zCallback for watch_name.Nr )r r r r r r r r r r Z s z&GLibMonitoring._name_vanished_callbackc C s t �|� dS )z5Stops watching a service name on the DBus connection.N)r Zbus_unwatch_name)r r r r r r r c s zGLibMonitoring._unwatch_name) r r r r �classmethodr r r r r r r r r r - s � r c @ s� e Zd ZdZefdd�Zedd� �Zedd� �Zedd � �Z ed d� �Z dd � Zdd� Zdd� Z dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd S )!r a4 Base class for DBus observers. This class is recommended to use only to watch the availability of a service on DBus. It doesn't provide any support for accessing objects provided by the service. Usage: .. code-block:: python # Create the observer and connect to its signals. observer = DBusObserver(SystemBus, "org.freedesktop.NetworkManager") def callback1(observer): print("Service is available!") def callback2(observer): print("Service is unavailable!") observer.service_available.connect(callback1) observer.service_unavailable.connect(callback2) # Connect to the service once it is available. observer.connect_once_available() # Disconnect the observer. observer.disconnect() c C s2 || _ || _d| _t� | _t� | _|| _g | _dS )z�Creates a DBus service observer. :param message_bus: a message bus :param service_name: a DBus name of a service FN)�_message_bus� _service_name�_is_service_availabler �_service_available�_service_unavailable�_monitoring�_subscriptions)�selfZmessage_bus�service_nameZ monitoringr r r �__init__� s zDBusObserver.__init__c C s | j S )zReturns a DBus name.�r �r# r r r r$ � s zDBusObserver.service_namec C s | j S )zThe proxy can be accessed.)r r'