serial_device_enumerator_linux.h revision 116680a4aac90f2aa7413d9095a592090648e557
1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef DEVICE_SERIAL_SERIAL_DEVICE_ENUMERATOR_LINUX_H_
6#define DEVICE_SERIAL_SERIAL_DEVICE_ENUMERATOR_LINUX_H_
7
8#include <libudev.h>
9
10#include "base/memory/scoped_ptr.h"
11#include "device/serial/serial_device_enumerator.h"
12
13namespace device {
14
15// Discovers and enumerates serial devices available to the host.
16class SerialDeviceEnumeratorLinux : public SerialDeviceEnumerator {
17 public:
18  SerialDeviceEnumeratorLinux();
19  virtual ~SerialDeviceEnumeratorLinux();
20
21  // Implementation for SerialDeviceEnumerator.
22  virtual mojo::Array<serial::DeviceInfoPtr> GetDevices() OVERRIDE;
23
24 private:
25  struct UdevDeleter {
26    void operator()(udev* handle);
27  };
28
29  scoped_ptr<udev, UdevDeleter> udev_;
30
31  DISALLOW_COPY_AND_ASSIGN(SerialDeviceEnumeratorLinux);
32};
33
34}  // namespace device
35
36#endif  // DEVICE_SERIAL_SERIAL_DEVICE_ENUMERATOR_LINUX_H_
37