// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef DEVICE_UDEV_LINUX_SCOPED_UDEV_H_ #define DEVICE_UDEV_LINUX_SCOPED_UDEV_H_ #include "base/memory/scoped_ptr.h" #include "device/udev_linux/udev.h" #if !defined(USE_UDEV) #error "USE_UDEV not defined" #endif namespace device { struct UdevDeleter { void operator()(udev* dev) const { udev_unref(dev); } }; struct UdevEnumerateDeleter { void operator()(udev_enumerate* enumerate) const { udev_enumerate_unref(enumerate); } }; struct UdevDeviceDeleter { void operator()(udev_device* device) const { udev_device_unref(device); } }; struct UdevMonitorDeleter { void operator()(udev_monitor* monitor) const { udev_monitor_unref(monitor); } }; typedef scoped_ptr ScopedUdevPtr; typedef scoped_ptr ScopedUdevEnumeratePtr; typedef scoped_ptr ScopedUdevDevicePtr; typedef scoped_ptr ScopedUdevMonitorPtr; } // namespace device #endif // DEVICE_UDEV_LINUX_SCOPED_UDEV_H_