| Index: device/hid/hid_connection_mac.h
|
| diff --git a/device/hid/hid_connection_mac.h b/device/hid/hid_connection_mac.h
|
| index 730eeae5452a67fc0c93ba6bb3a45bf969cabce0..10f0e8cbe9ba6ca445610c6420d2ef1aee18a0b6 100644
|
| --- a/device/hid/hid_connection_mac.h
|
| +++ b/device/hid/hid_connection_mac.h
|
| @@ -5,12 +5,17 @@
|
| #ifndef DEVICE_HID_HID_CONNECTION_MAC_H_
|
| #define DEVICE_HID_HID_CONNECTION_MAC_H_
|
|
|
| -#include "base/callback.h"
|
| +#include <CoreFoundation/CoreFoundation.h>
|
| +#include <IOKit/hid/IOHIDManager.h>
|
| +
|
| +#include <queue>
|
| +
|
| +#include "base/mac/foundation_util.h"
|
| #include "base/memory/ref_counted.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "base/tuple.h"
|
| #include "device/hid/hid_connection.h"
|
| #include "device/hid/hid_device_info.h"
|
| -#include "device/hid/hid_service_mac.h"
|
|
|
| namespace net {
|
| class IOBuffer;
|
| @@ -18,55 +23,51 @@ class IOBuffer;
|
|
|
| namespace device {
|
|
|
| +class HidServiceMac;
|
| +
|
| class HidConnectionMac : public HidConnection {
|
| public:
|
| HidConnectionMac(HidServiceMac* service,
|
| HidDeviceInfo device_info,
|
| IOHIDDeviceRef device);
|
|
|
| - virtual void Read(scoped_refptr<net::IOBuffer> buffer,
|
| - size_t size,
|
| + virtual void Read(scoped_refptr<net::IOBufferWithSize> buffer,
|
| const IOCallback& callback) OVERRIDE;
|
| - virtual void Write(scoped_refptr<net::IOBuffer> buffer,
|
| - size_t size,
|
| + virtual void Write(scoped_refptr<net::IOBufferWithSize> buffer,
|
| const IOCallback& callback) OVERRIDE;
|
| - virtual void GetFeatureReport(scoped_refptr<net::IOBuffer> buffer,
|
| - size_t size,
|
| + virtual void GetFeatureReport(scoped_refptr<net::IOBufferWithSize> buffer,
|
| const IOCallback& callback) OVERRIDE;
|
| - virtual void SendFeatureReport(scoped_refptr<net::IOBuffer> buffer,
|
| - size_t size,
|
| + virtual void SendFeatureReport(scoped_refptr<net::IOBufferWithSize> buffer,
|
| const IOCallback& callback) OVERRIDE;
|
|
|
| private:
|
| virtual ~HidConnectionMac();
|
|
|
| - static void InputReportCallback(void * context,
|
| + static void InputReportCallback(void* context,
|
| IOReturn result,
|
| - void * sender,
|
| + void* sender,
|
| IOHIDReportType type,
|
| - uint32_t reportID,
|
| - uint8_t * report,
|
| - CFIndex reportLength);
|
| + uint32_t report_id,
|
| + uint8_t* report_bytes,
|
| + CFIndex report_length);
|
| void ProcessReadQueue();
|
| void ProcessInputReport(IOHIDReportType type,
|
| - scoped_refptr<net::IOBuffer> report,
|
| - CFIndex reportLength);
|
| + scoped_refptr<net::IOBufferWithSize> buffer);
|
|
|
| void WriteReport(IOHIDReportType type,
|
| - scoped_refptr<net::IOBuffer> buffer,
|
| - size_t size,
|
| + scoped_refptr<net::IOBufferWithSize> buffer,
|
| const IOCallback& callback);
|
|
|
| + // The HidService that created this connection. Not owned.
|
| HidServiceMac* service_;
|
| +
|
| scoped_refptr<base::MessageLoopProxy> message_loop_;
|
| +
|
| base::ScopedCFTypeRef<IOHIDDeviceRef> device_;
|
| scoped_ptr_malloc<uint8_t> inbound_buffer_;
|
| - bool disconnected_;
|
|
|
| - typedef std::pair<scoped_refptr<net::IOBuffer>, size_t> PendingReport;
|
| - std::queue<PendingReport> input_reports_;
|
| - typedef Tuple3<scoped_refptr<net::IOBuffer>, size_t, IOCallback> PendingRead;
|
| - std::queue<PendingRead> read_queue_;
|
| + std::queue<PendingHidReport> pending_reports_;
|
| + std::queue<PendingHidRead> pending_reads_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(HidConnectionMac);
|
| };
|
|
|