
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
À<×e*  ã               @   sT   d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 G dd„ de
ƒZdS )	é    )Úismethod)ÚmethodÚsignal)ÚPROPERTIES_IFACE)ÚDBusException)ÚDBusExporterc                   s4   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Z‡  ZS )	ÚDBusExporterWithPropertiesc       	         s¾   t tˆ ƒj||||ƒ i ˆ _i ˆ _‡ fdd„}‡ fdd„}‡ fdd„}‡ fdd„}ttd	d
d�|ƒˆ jd< ttdd�|ƒˆ jd< ttddd�|ƒˆ jd< ttdd�|ƒˆ jd< ˆ j	j
dƒ d S )Nc                s<   |ˆ j krtd| ƒ‚|ˆ jkr,td| ƒ‚ˆ j| }|ƒ S )NzUnknown interface: %szNo such property: %s)Ú_interface_namer   Ú_property_getters)Ú_Úinterface_nameÚproperty_nameÚgetter)Úself© ú3/usr/lib/python3.6/dbus_exporter_with_properties.pyÚGet   s    


z0DBusExporterWithProperties.__init__.<locals>.Getc                sB   |ˆ j krtd| ƒ‚|ˆ jkr,td| ƒ‚ˆ j| }||ƒ d S )NzUnknown interface: %szNo such property: %s)r	   r   Ú_property_setters)r   r   r   ÚvalueÚsetter)r   r   r   ÚSet   s    


z0DBusExporterWithProperties.__init__.<locals>.Setc                s*   |ˆ j krtd| ƒ‚dd„ ˆ jjƒ D ƒS )NzUnknown interface: %sc             S   s   i | ]\}}|ƒ |“qS r   r   )Ú.0Únamer   r   r   r   ú
<dictcomp>!   s    zGDBusExporterWithProperties.__init__.<locals>.GetAll.<locals>.<dictcomp>)r	   r   r
   Úitems)r   r   )r   r   r   ÚGetAll   s    
z3DBusExporterWithProperties.__init__.<locals>.GetAllc                s   |ˆ j krtd| ƒ‚d S )NzUnknown interface: %s)r	   r   )r   r   Zchanged_propertiesZinvalidated_properties)r   r   r   ÚPropertiesChanged#   s    
z>DBusExporterWithProperties.__init__.<locals>.PropertiesChangedZssÚv)Úin_signatureZout_signaturer   Zssv)r   r   Úsza{sv}r   zsa{sv}as)Z	signaturer   )Úsuperr   Ú__init__r   r
   r   r   Z_dbus_methodsr   Z_signalsÚadd)	r   Zbus_namer   Zobject_nameÚ	namespacer   r   r   r   )Ú	__class__)r   r   r!   	   s    z#DBusExporterWithProperties.__init__c             C   s   | j d| j||ii ƒ d S )Nr   )Zsend_signalr	   )r   r   r   r   r   r   Úproperty_changed-   s    z+DBusExporterWithProperties.property_changedc             C   s0   t |ƒstdƒ‚|| jkr"tdƒ‚|| j|< d S )Nz#Only bound methods can be exported.z1A getter for this property is already registered.)r   Ú	Exceptionr
   )r   r   r   r   r   r   Úproperty_getter0   s
    
z*DBusExporterWithProperties.property_getterc             C   s0   t |ƒstdƒ‚|| jkr"tdƒ‚|| j|< d S )Nz#Only bound methods can be exported.z1A setter for this property is already registered.)r   r&   r   )r   r   r   r   r   r   Úproperty_setter7   s
    
z*DBusExporterWithProperties.property_setter)Ú__name__Ú
__module__Ú__qualname__r!   r%   r'   r(   Ú__classcell__r   r   )r$   r   r      s   $r   N)Úinspectr   Zdbus.servicer   r   Zdbusr   Zdbus.exceptionsr   Ztuned.exports.dbus_exporterr   r   r   r   r   r   Ú<module>   s
   