a Á]›ij ã @ s, d dl Zej ¡ ZdgZG dd„ deƒZdS )é NÚMonitorc @ sÐ e Zd ZdZedd„ ƒZedd„ ƒZedd„ ƒZedd „ ƒZed d„ ƒZ edd „ ƒZ edd„ ƒZedd„ ƒZedd„ ƒZ d&dd„Zdd„ Zdd„ Zedd„ ƒZejdd„ ƒZdd„ Zd d!„ Zd"d#„ Zd$d%„ ZdS )'r zô Base class for all monitors. Monitors provide data about the running system to Plugin objects, which use the data to tune system parameters. Following methods require reimplementation: - _init_available_devices(cls) - update(cls) c C sL d| _ tƒ | _tƒ | _tƒ | _i | _| ¡ d| _ t dd | j¡ ¡ d S )NFTzavailable devices: %sú, ) Ú_class_initializedÚsetÚ _instancesÚ_available_devicesÚ_updating_devicesÚ_loadÚ_init_available_devicesÚlogÚdebugÚjoin©Úcls© r ú7/usr/lib/python3.9/site-packages/tuned/monitors/base.pyÚ_init_class s zMonitor._init_classc C s t ƒ ‚d S ©N©ÚNotImplementedErrorr r r r r ! s zMonitor._init_available_devicesc C s" | ¡ t dd | j¡ ¡ d S )Nz available devices updated to: %sr )r r r r r r r r r Ú_update_available_devices% s ÿz!Monitor._update_available_devicesc C s | j S r )r r r r r Úget_available_devices+ s zMonitor.get_available_devicesc C s t ƒ ‚d S r r r r r r Úupdate/ s zMonitor.updatec C s | j |¡ d S r )r Úadd©r Úinstancer r r Ú_register_instance3 s zMonitor._register_instancec C s | j |¡ d S r )r Úremover r r r Ú_deregister_instance7 s zMonitor._deregister_instancec C s6 t ƒ }| jD ]}||jO }q| j ¡ | j |¡ d S r )r r Údevicesr Úclearr )r Znew_updatingr r r r Ú_refresh_updating_devices; s z!Monitor._refresh_updating_devicesc C s | j S r )r r r r r Ú instancesC s zMonitor.instancesNc C sB t | dƒs| ¡ | | ¡ |d ur,|| _n | ¡ | _| ¡ d S )Nr )Úhasattrr r r r r )Úselfr r r r Ú__init__I s zMonitor.__init__c C s z| ¡ W n Y n0 d S r )Úcleanup©r$ r r r Ú__del__W s zMonitor.__del__c C s | | ¡ | ¡ d S r )r r! r' r r r r&