summaryrefslogtreecommitdiffstats
path: root/device/hid/hid_service_linux.h
diff options
context:
space:
mode:
authorygorshenin@chromium.org <ygorshenin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-10 15:11:14 +0000
committerygorshenin@chromium.org <ygorshenin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-10 15:11:14 +0000
commitbca53b0d57b74ad40aca5b37f0223e7dcf3bc8f7 (patch)
treea183ab639b5ec545d77aef013a3f74f5e0414b48 /device/hid/hid_service_linux.h
parentf84863d54810e5d4aaee26c4d9a2b57fadcb79a1 (diff)
downloadchromium_src-bca53b0d57b74ad40aca5b37f0223e7dcf3bc8f7.zip
chromium_src-bca53b0d57b74ad40aca5b37f0223e7dcf3bc8f7.tar.gz
chromium_src-bca53b0d57b74ad40aca5b37f0223e7dcf3bc8f7.tar.bz2
Udev-related methods are extracted from HidServiceLinux into an individual service.
BUG=357050 TEST=none Review URL: https://codereview.chromium.org/230503003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262993 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'device/hid/hid_service_linux.h')
-rw-r--r--device/hid/hid_service_linux.h56
1 files changed, 8 insertions, 48 deletions
diff --git a/device/hid/hid_service_linux.h b/device/hid/hid_service_linux.h
index ae730ce..7bffd09 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);
};