Index: device/hid/hid_service_linux.h |
diff --git a/device/hid/hid_service_linux.h b/device/hid/hid_service_linux.h |
index ae730cea7ef4f0404fc65076d77a6759df1fb130..7bffd0979979f8f82d1bacdc8f25a7436c0ea101 100644 |
--- a/device/hid/hid_service_linux.h |
+++ b/device/hid/hid_service_linux.h |
@@ -5,73 +5,33 @@ |
#ifndef DEVICE_HID_HID_SERVICE_LINUX_H_ |
#define DEVICE_HID_HID_SERVICE_LINUX_H_ |
-#include <libudev.h> |
- |
-#include <map> |
-#include <string> |
- |
+#include "base/compiler_specific.h" |
#include "base/macros.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/message_loop/message_pump_libevent.h" |
+#include "device/hid/device_monitor_linux.h" |
#include "device/hid/hid_device_info.h" |
#include "device/hid/hid_service.h" |
+struct udev_device; |
+ |
namespace device { |
class HidConnection; |
-template<typename T, void func(T*)> |
-void DiscardReturnType(T* arg) { func(arg); } |
-template<typename T, T* func(T*)> |
-void DiscardReturnType(T* arg) { func(arg); } |
- |
-template<typename T, void func(T*)> |
-struct Deleter { |
- void operator()(T* enumerate) const { |
- if (enumerate != NULL) |
- func(enumerate); |
- } |
-}; |
- |
-typedef Deleter< |
- udev_enumerate, |
- DiscardReturnType<udev_enumerate, udev_enumerate_unref> > |
- UdevEnumerateDeleter; |
-typedef Deleter< |
- udev_device, |
- DiscardReturnType<udev_device, udev_device_unref> > UdevDeviceDeleter; |
-typedef Deleter<udev, DiscardReturnType<udev, udev_unref> > UdevDeleter; |
-typedef Deleter< |
- udev_monitor, |
- DiscardReturnType<udev_monitor, udev_monitor_unref> > UdevMonitorDeleter; |
- |
-typedef scoped_ptr<udev_device, UdevDeviceDeleter> ScopedUdevDevicePtr; |
-typedef scoped_ptr<udev_enumerate, UdevEnumerateDeleter> ScopedUdevEnumeratePtr; |
- |
class HidServiceLinux : public HidService, |
- public base::MessagePumpLibevent::Watcher { |
+ public DeviceMonitorLinux::Observer { |
public: |
HidServiceLinux(); |
virtual scoped_refptr<HidConnection> Connect(const HidDeviceId& device_id) |
OVERRIDE; |
- // Implements base::MessagePumpLibevent::Watcher |
- virtual void OnFileCanReadWithoutBlocking(int fd) OVERRIDE; |
- virtual void OnFileCanWriteWithoutBlocking(int fd) OVERRIDE; |
+ // Implements base::DeviceMonitorLinux::Observer: |
+ virtual void OnDeviceAdded(udev_device* device) OVERRIDE; |
+ virtual void OnDeviceRemoved(udev_device* device) OVERRIDE; |
private: |
virtual ~HidServiceLinux(); |
- void Enumerate(); |
- void PlatformAddDevice(udev_device* device); |
- void PlatformRemoveDevice(udev_device* raw_dev); |
- |
- scoped_ptr<udev, UdevDeleter> udev_; |
- scoped_ptr<udev_monitor, UdevMonitorDeleter> monitor_; |
- int monitor_fd_; |
- base::MessagePumpLibevent::FileDescriptorWatcher monitor_watcher_; |
- |
DISALLOW_COPY_AND_ASSIGN(HidServiceLinux); |
}; |