Consolidates app id comparison
[chromium-blink-merge.git] / device / usb / usb_device_filter.h
bloba40c859683327128f10be9db7e31f23815ab3435
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.
5 #ifndef DEVICE_USB_USB_DEVICE_FILTER_H_
6 #define DEVICE_USB_USB_DEVICE_FILTER_H_
8 #include <vector>
10 #include "base/memory/ref_counted.h"
11 #include "base/memory/scoped_ptr.h"
13 namespace base {
14 class Value;
17 namespace device {
19 class UsbDevice;
21 class UsbDeviceFilter {
22 public:
23 UsbDeviceFilter();
24 ~UsbDeviceFilter();
26 void SetVendorId(uint16 vendor_id);
27 void SetProductId(uint16 product_id);
28 void SetInterfaceClass(uint8 interface_class);
29 void SetInterfaceSubclass(uint8 interface_subclass);
30 void SetInterfaceProtocol(uint8 interface_protocol);
32 bool Matches(scoped_refptr<UsbDevice> device) const;
33 scoped_ptr<base::Value> ToValue() const;
35 static bool MatchesAny(scoped_refptr<UsbDevice> device,
36 const std::vector<UsbDeviceFilter>& filters);
38 private:
39 uint16 vendor_id_;
40 uint16 product_id_;
41 uint8 interface_class_;
42 uint8 interface_subclass_;
43 uint8 interface_protocol_;
44 bool vendor_id_set_ : 1;
45 bool product_id_set_ : 1;
46 bool interface_class_set_ : 1;
47 bool interface_subclass_set_ : 1;
48 bool interface_protocol_set_ : 1;
51 } // namespace device
53 #endif // DEVICE_USB_USB_DEVICE_FILTER_H_