this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at vchroot 41 lines 856 B view raw
1#include "io_device_iterator.h" 2#include "io_device.h" 3#include <libudev.h> 4#include <typeinfo> 5 6io_device_iterator::io_device_iterator(udev_enumerate* uenum) 7 : m_uenum(uenum) 8{ 9 m_udev = udev_enumerate_get_udev(m_uenum); 10 reset(); 11} 12 13void io_device_iterator::reset() 14{ 15 m_next = udev_enumerate_get_list_entry(m_uenum); 16} 17 18io_device_iterator::~io_device_iterator() 19{ 20 udev_enumerate_unref(m_uenum); 21 udev_unref(m_udev); 22} 23 24bool io_device_iterator::operator==(const io_object& that) 25{ 26 if (typeid(*this) != typeid(that)) 27 return false; 28 return m_uenum == ((io_device_iterator*)&that)->m_uenum; 29} 30 31io_object_t io_device_iterator::next() 32{ 33 if (!m_next) 34 return nullptr; 35 else 36 { 37 udev_device* dev = udev_device_new_from_syspath(m_udev, udev_list_entry_get_name(m_next)); 38 m_next = udev_list_entry_get_next(m_next); 39 return io_device::create(dev); 40 } 41}