Index: device/udev_linux/scoped_udev.h |
diff --git a/device/udev_linux/scoped_udev.h b/device/udev_linux/scoped_udev.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..06e3926025418562a673e985de136c0edbc46965 |
--- /dev/null |
+++ b/device/udev_linux/scoped_udev.h |
@@ -0,0 +1,45 @@ |
+// 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<udev, UdevDeleter> ScopedUdevPtr; |
+typedef scoped_ptr<udev_enumerate, UdevEnumerateDeleter> ScopedUdevEnumeratePtr; |
+typedef scoped_ptr<udev_device, UdevDeviceDeleter> ScopedUdevDevicePtr; |
+typedef scoped_ptr<udev_monitor, UdevMonitorDeleter> ScopedUdevMonitorPtr; |
+ |
+} // namespace device |
+ |
+#endif // DEVICE_UDEV_LINUX_SCOPED_UDEV_H_ |