Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 À<×e3ã@sPddlZddlZddlmZdgZejjƒZGdd„deƒZ Gdd„deƒZ dS)éN)ÚconstsÚ Inventoryc@s\eZdZdZddd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z ddd„Z dS)rz‰ Inventory object can handle information about available hardware devices. It also informs the plugins about related hardware events. NTc Csœ|dk r||_n tjƒ|_|dkr(tj}|j|jƒ|_|dkrDtj}|rxy|jj|ƒWnt k rvt j dƒYnX|dkr†t ƒ}||_ d|_i|_dS)NzLcannot set udev monitor receive buffer size, we are probably running inside zIcontainer or with limited capabilites, TuneD functionality may be limitedz•cannot set udev monitor receive buffer size, we are probably running inside container or with limited capabilites, TuneD functionality may be limited)Ú _udev_contextÚpyudevZContextZMonitorZ from_netlinkÚ _udev_monitorrZCFG_DEF_UDEV_BUFFER_SIZEÚset_receive_buffer_sizeÚEnvironmentErrorÚlogÚwarnÚ_MonitorObserverFactoryÚ_monitor_observer_factoryÚ_monitor_observerÚ_subscriptions)ÚselfZ udev_contextZudev_monitor_clsZmonitor_observer_factoryÚ buffer_sizer©rú/usr/lib/python3.6/inventory.pyÚ__init__s&  zInventory.__init__c Cs:ytjj|j||ƒStk r4tjj|j||ƒSXdS)z9Get a pyudev.Device object for the sys_name (e.g. 'sda').N)rZDevicesÚ from_namerÚAttributeErrorZDevice)rÚ subsystemZsys_namerrrÚ get_device)szInventory.get_devicecCs|jj|d�S)z)Get list of devices on a given subsystem.)r)rZ list_devices)rrrrrÚ get_devices1szInventory.get_devicescCsx|j|jkrdSxb|j|jD]R\}}y|||ƒWqtk rn}ztjd|ƒtj|ƒWYdd}~XqXqWdS)Nz+Exception occured in event handler of '%s'.)rrÚ Exceptionr ÚerrorZ exception)rZeventZdeviceÚpluginÚcallbackÚerrrÚ_handle_udev_event5s zInventory._handle_udev_eventcCs\tjd||fƒ||f}||jkr6|j|j|ƒn"|g|j|<|jj|ƒ|jjƒdS)z7Register handler of device events on a given subsystem.zadding handler: %s (%s)N)r ÚdebugrÚappendrZ filter_byÚstart)rrrrÚ callback_datarrrÚ subscribe@s   zInventory.subscribecCs6|jdkr2tjdƒ|jj|j|jƒ|_|jjƒdS)Nzstarting monitor observer)r r rr Úcreaterrr!)rrrrÚstart_processing_eventsLs  z!Inventory.start_processing_eventscCs(|jdk r$tjdƒ|jjƒd|_dS)Nzstopping monitor observer)r r rÚstop)rrrrÚstop_processing_eventsRs   z Inventory.stop_processing_eventscCsJxD|j|D]6}|\}}||kr tjd||fƒ|j|j|ƒq WdS)Nzremoving handler: %s (%s))rr rÚremove)rrrr"Z_pluginrrrrÚ_unsubscribe_subsystemXs z Inventory._unsubscribe_subsystemcCsfg}xF|jD]<}|dks ||kr |j||ƒt|j|ƒdkr |j|ƒq Wx|D] }|j|=qRWdS)z4Unregister handler registered with subscribe method.Nr)rr)Úlenr )rrrZempty_subsystemsZ _subsystemrrrÚ unsubscribe_s   zInventory.unsubscribe)NNNNT)N) Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrr#r%r'r)r+rrrrr s   c@seZdZdd„ZdS)r cOs tj||ŽS)N)rZMonitorObserver)rÚargsÚkwargsrrrr$lsz_MonitorObserverFactory.createN)r,r-r.r$rrrrr ksr ) rZ tuned.logsZtunedrÚ__all__ZlogsÚgetr Úobjectrr rrrrÚs   b