#include "udev.h" #include // --- cUdevListEntry -------------------------------------------------------- cUdevListEntry::cUdevListEntry(struct udev_list_entry *ListEntry) :listEntry(ListEntry) { } cUdevListEntry::~cUdevListEntry(void) { } cUdevListEntry *cUdevListEntry::GetNext(void) const { if (listEntry == NULL) return NULL; struct udev_list_entry *next = udev_list_entry_get_next(listEntry); if (next == NULL) return NULL; return new cUdevListEntry(next); } const char *cUdevListEntry::GetName(void) const { if (listEntry == NULL) return NULL; return udev_list_entry_get_name(listEntry); } const char *cUdevListEntry::GetValue(void) const { if (listEntry == NULL) return NULL; return udev_list_entry_get_value(listEntry); } // --- cUdevDevice ----------------------------------------------------------- cUdevDevice::cUdevDevice(udev_device *Device, bool DoUnref) :device(Device) ,doUnref(DoUnref) { } cUdevDevice::~cUdevDevice(void) { if (doUnref && device) udev_device_unref(device); } const char *cUdevDevice::GetAction(void) const { if (device == NULL) return NULL; return udev_device_get_action(device); } cUdevListEntry *cUdevDevice::GetDevlinksList(void) const { if (device == NULL) return NULL; struct udev_list_entry *listEntry = udev_device_get_devlinks_list_entry(device); if (listEntry == NULL) return NULL; return new cUdevListEntry(listEntry); } cUdevDevice *cUdevDevice::GetParent(void) const { if (device == NULL) return NULL; struct udev_device *parent = udev_device_get_parent(device); if (parent == NULL) return NULL; return new cUdevDevice(parent, false); } const char *cUdevDevice::GetPropertyValue(const char *Key) const { if (device == NULL) return false; return udev_device_get_property_value(device, Key); } const char *cUdevDevice::GetSyspath(void) const { if (device == NULL) return false; return udev_device_get_syspath(device); } // --- cUdev ----------------------------------------------------------------- struct udev *cUdev::udev = NULL; struct udev *cUdev::Init(void) { if (udev == NULL) udev = udev_new(); return udev; } void cUdev::Free(void) { if (udev) udev_unref(udev); udev = NULL; }