Edit File: hotplug.cpython-36.pyc
3 ��cI������������������@���s>���d�dl�mZ�ddljZddlZejj��ZG�dd��dej �Z dS�)����)�base�����Nc�������������������s����e�Zd�ZdZ��fdd�Z��fdd�Zdd��Zdd ��Zd d��Zdd ��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��Z���ZS�)�Pluginz: Base class for plugins with device hotpluging support. c����������������s���t�t|��j||��d�S�)N)�superr����__init__)�self�args�kwargs)� __class__���/usr/lib/python3.6/hotplug.pyr������s����zPlugin.__init__c����������������s���t�t|��j���|�j���d�S�)N)r���r����cleanup�_hardware_events_cleanup)r���)r ���r���r���r ������s����zPlugin.cleanupc�������������C���s���d�S�)Nr���)r���r���r���r����_hardware_events_init���s����zPlugin._hardware_events_initc�������������C���s���d�S�)Nr���)r���r���r���r���r������s����zPlugin._hardware_events_cleanupc�������������C���s���|�j����d�S�)N)r���)r���r���r���r���� _init_devices���s����zPlugin._init_devicesc�������������C���sN���|dkr&t�jd|j���|�j|j��n$|dkrJt�jd|j���|�j|j��d�S�)N�addzdevice '%s' added�removezdevice '%s' removed)�log�infoZsys_name�_add_device�_remove_device)r���ZeventZdevicer���r���r����_hardware_events_callback���s����z Plugin._hardware_events_callbackc�������������C���sd���t�jd|j|f���|�jj|��|�j||jd|g��|�j||��|�j||jd|g��|j j|��d�S�)Nz!instance %s: adding new device %sZapply) r���r����name�_assigned_devicesr����_call_device_script� script_pre�_added_device_apply_tuning�script_post�processed_devices)r����instance�device_namer���r���r����_add_device_process$���s����zPlugin._add_device_processc�������������C���sr���||�j�|�jB�krd�S�xXt|�jj���D�],\}}t|�j||g��dkr$|�j||��P�q$W�tj d|���|�jj |��d�S�)Nr���zno instance wants %s)r���� _free_devices�list� _instances�items�lenZ_get_matching_devicesr!���r����debugr���)r���r ���Z instance_namer���r���r���r���r���,���s����zPlugin._add_devicec�������������C���s8���x|D�]}|�j�||��qW�t|j�t|j��dk|_dS�)zN Add devices specified by the set to the instance, no check is performed. r���N)r!���r&���r����assigned_devices�active)r���r����device_names�devr���r���r����_add_devices_nocheck8���s���� zPlugin._add_devices_nocheckc�������������C���sx���||j�krt|�j||jd|g��|�j||��|�j||jd|g��|j�j|��t|j��t|j��dk|_|�j j|��dS�dS�)NZunapplyr���TF) r���r���r����_removed_device_unapply_tuningr���r���r&���r(���r)���r���)r���r���r ���r���r���r����_remove_device_processC���s���� zPlugin._remove_device_processc�������������C���sJ���||�j�|�jB�krdS�x0t|�jj���D�]}|�j||�r$P�q$W�|�jj|��dS�)zVRemove device from the instance Parameters: device_name -- name of the device N)r���r"���r#���r$����valuesr.���r���)r���r ���r���r���r���r���r���Q���s����zPlugin._remove_devicec�������������C���s���x|D�]}|�j�||��qW�dS�)zS Remove devices specified by the set from the instance, no check is performed. N)r.���)r���r���r*���r+���r���r���r����_remove_devices_nochecka���s���� zPlugin._remove_devices_nocheckc�������������C���s6���|�j�||g��|jr2|�jjtjtj�r2|�j||��d�S�)N)Z_execute_all_device_commands�has_dynamic_tuning�_global_cfg�get�consts�CFG_DYNAMIC_TUNING�CFG_DEF_DYNAMIC_TUNINGZ_instance_apply_dynamic)r���r���r ���r���r���r���r���h���s����z!Plugin._added_device_apply_tuningc�������������C���s6���|j�r$|�jjtjtj�r$|�j||��|�j||g��d�S�)N)r1���r2���r3���r4���r5���r6���Z_instance_unapply_dynamicZ_cleanup_all_device_commands)r���r���r ���r���r���r���r-���m���s����z%Plugin._removed_device_unapply_tuning)�__name__� __module__�__qualname__�__doc__r���r ���r���r���r���r���r!���r���r,���r.���r���r0���r���r-���� __classcell__r���r���)r ���r���r������s���r���) ��r���Ztuned.constsr4���Z tuned.logsZtunedZlogsr3���r���r���r���r���r���r����<module>���s���