| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef EXTENSIONS_BROWSER_API_SERIAL_SERIAL_CONNECTION_H_ | 5 #ifndef EXTENSIONS_BROWSER_API_SERIAL_SERIAL_CONNECTION_H_ |
| 6 #define EXTENSIONS_BROWSER_API_SERIAL_SERIAL_CONNECTION_H_ | 6 #define EXTENSIONS_BROWSER_API_SERIAL_SERIAL_CONNECTION_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 // noted. | 28 // noted. |
| 29 class SerialConnection : public ApiResource, | 29 class SerialConnection : public ApiResource, |
| 30 public base::SupportsWeakPtr<SerialConnection> { | 30 public base::SupportsWeakPtr<SerialConnection> { |
| 31 public: | 31 public: |
| 32 typedef device::SerialIoHandler::OpenCompleteCallback OpenCompleteCallback; | 32 typedef device::SerialIoHandler::OpenCompleteCallback OpenCompleteCallback; |
| 33 | 33 |
| 34 // This is the callback type expected by Receive. Note that an error result | 34 // This is the callback type expected by Receive. Note that an error result |
| 35 // does not necessarily imply an empty |data| string, since a receive may | 35 // does not necessarily imply an empty |data| string, since a receive may |
| 36 // complete partially before being interrupted by an error condition. | 36 // complete partially before being interrupted by an error condition. |
| 37 typedef base::Callback<void(const std::vector<char>& data, | 37 typedef base::Callback<void(const std::vector<char>& data, |
| 38 core_api::serial::ReceiveError error)> | 38 api::serial::ReceiveError error)> |
| 39 ReceiveCompleteCallback; | 39 ReceiveCompleteCallback; |
| 40 | 40 |
| 41 // This is the callback type expected by Send. Note that an error result | 41 // This is the callback type expected by Send. Note that an error result |
| 42 // does not necessarily imply 0 bytes sent, since a send may complete | 42 // does not necessarily imply 0 bytes sent, since a send may complete |
| 43 // partially before being interrupted by an error condition. | 43 // partially before being interrupted by an error condition. |
| 44 typedef base::Callback< | 44 typedef base::Callback<void(int bytes_sent, api::serial::SendError error)> |
| 45 void(int bytes_sent, core_api::serial::SendError error)> | |
| 46 SendCompleteCallback; | 45 SendCompleteCallback; |
| 47 | 46 |
| 48 SerialConnection(const std::string& port, | 47 SerialConnection(const std::string& port, |
| 49 const std::string& owner_extension_id); | 48 const std::string& owner_extension_id); |
| 50 ~SerialConnection() override; | 49 ~SerialConnection() override; |
| 51 | 50 |
| 52 // ApiResource override. | 51 // ApiResource override. |
| 53 bool IsPersistent() const override; | 52 bool IsPersistent() const override; |
| 54 | 53 |
| 55 void set_persistent(bool persistent) { persistent_ = persistent; } | 54 void set_persistent(bool persistent) { persistent_ = persistent; } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 66 | 65 |
| 67 void set_send_timeout(int send_timeout); | 66 void set_send_timeout(int send_timeout); |
| 68 int send_timeout() const { return send_timeout_; } | 67 int send_timeout() const { return send_timeout_; } |
| 69 | 68 |
| 70 void set_paused(bool paused); | 69 void set_paused(bool paused); |
| 71 bool paused() const { return paused_; } | 70 bool paused() const { return paused_; } |
| 72 | 71 |
| 73 // Initiates an asynchronous Open of the device. It is the caller's | 72 // Initiates an asynchronous Open of the device. It is the caller's |
| 74 // responsibility to ensure that this SerialConnection stays alive | 73 // responsibility to ensure that this SerialConnection stays alive |
| 75 // until |callback| is run. | 74 // until |callback| is run. |
| 76 void Open(const core_api::serial::ConnectionOptions& options, | 75 void Open(const api::serial::ConnectionOptions& options, |
| 77 const OpenCompleteCallback& callback); | 76 const OpenCompleteCallback& callback); |
| 78 | 77 |
| 79 // Begins an asynchronous receive operation. Calling this while a Receive | 78 // Begins an asynchronous receive operation. Calling this while a Receive |
| 80 // is already pending is a no-op and returns |false| without calling | 79 // is already pending is a no-op and returns |false| without calling |
| 81 // |callback|. | 80 // |callback|. |
| 82 bool Receive(const ReceiveCompleteCallback& callback); | 81 bool Receive(const ReceiveCompleteCallback& callback); |
| 83 | 82 |
| 84 // Begins an asynchronous send operation. Calling this while a Send | 83 // Begins an asynchronous send operation. Calling this while a Send |
| 85 // is already pending is a no-op and returns |false| without calling | 84 // is already pending is a no-op and returns |false| without calling |
| 86 // |callback|. | 85 // |callback|. |
| 87 bool Send(const std::vector<char>& data, | 86 bool Send(const std::vector<char>& data, |
| 88 const SendCompleteCallback& callback); | 87 const SendCompleteCallback& callback); |
| 89 | 88 |
| 90 // Flushes input and output buffers. | 89 // Flushes input and output buffers. |
| 91 bool Flush() const; | 90 bool Flush() const; |
| 92 | 91 |
| 93 // Configures some subset of port options for this connection. | 92 // Configures some subset of port options for this connection. |
| 94 // Omitted options are unchanged. Returns |true| iff the configuration | 93 // Omitted options are unchanged. Returns |true| iff the configuration |
| 95 // changes were successful. | 94 // changes were successful. |
| 96 bool Configure(const core_api::serial::ConnectionOptions& options); | 95 bool Configure(const api::serial::ConnectionOptions& options); |
| 97 | 96 |
| 98 // Connection configuration query. Fills values in an existing | 97 // Connection configuration query. Fills values in an existing |
| 99 // ConnectionInfo. Returns |true| iff the connection's information | 98 // ConnectionInfo. Returns |true| iff the connection's information |
| 100 // was successfully retrieved. | 99 // was successfully retrieved. |
| 101 bool GetInfo(core_api::serial::ConnectionInfo* info) const; | 100 bool GetInfo(api::serial::ConnectionInfo* info) const; |
| 102 | 101 |
| 103 // Reads current control signals (DCD, CTS, etc.) into an existing | 102 // Reads current control signals (DCD, CTS, etc.) into an existing |
| 104 // DeviceControlSignals structure. Returns |true| iff the signals were | 103 // DeviceControlSignals structure. Returns |true| iff the signals were |
| 105 // successfully read. | 104 // successfully read. |
| 106 bool GetControlSignals( | 105 bool GetControlSignals( |
| 107 core_api::serial::DeviceControlSignals* control_signals) const; | 106 api::serial::DeviceControlSignals* control_signals) const; |
| 108 | 107 |
| 109 // Sets one or more control signals (DTR and/or RTS). Returns |true| iff | 108 // Sets one or more control signals (DTR and/or RTS). Returns |true| iff |
| 110 // the signals were successfully set. Unininitialized flags in the | 109 // the signals were successfully set. Unininitialized flags in the |
| 111 // HostControlSignals structure are left unchanged. | 110 // HostControlSignals structure are left unchanged. |
| 112 bool SetControlSignals( | 111 bool SetControlSignals( |
| 113 const core_api::serial::HostControlSignals& control_signals); | 112 const api::serial::HostControlSignals& control_signals); |
| 114 | 113 |
| 115 // Suspend character transmission. Known as setting/sending 'Break' signal. | 114 // Suspend character transmission. Known as setting/sending 'Break' signal. |
| 116 bool SetBreak(); | 115 bool SetBreak(); |
| 117 | 116 |
| 118 // Restore character transmission. Known as clear/stop sending 'Break' signal. | 117 // Restore character transmission. Known as clear/stop sending 'Break' signal. |
| 119 bool ClearBreak(); | 118 bool ClearBreak(); |
| 120 | 119 |
| 121 // Overrides |io_handler_| for testing. | 120 // Overrides |io_handler_| for testing. |
| 122 void SetIoHandlerForTest(scoped_refptr<device::SerialIoHandler> handler); | 121 void SetIoHandlerForTest(scoped_refptr<device::SerialIoHandler> handler); |
| 123 | 122 |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 // Asynchronous I/O handler. | 198 // Asynchronous I/O handler. |
| 200 scoped_refptr<device::SerialIoHandler> io_handler_; | 199 scoped_refptr<device::SerialIoHandler> io_handler_; |
| 201 }; | 200 }; |
| 202 | 201 |
| 203 } // namespace extensions | 202 } // namespace extensions |
| 204 | 203 |
| 205 namespace mojo { | 204 namespace mojo { |
| 206 | 205 |
| 207 template <> | 206 template <> |
| 208 struct TypeConverter<device::serial::HostControlSignalsPtr, | 207 struct TypeConverter<device::serial::HostControlSignalsPtr, |
| 209 extensions::core_api::serial::HostControlSignals> { | 208 extensions::api::serial::HostControlSignals> { |
| 210 static device::serial::HostControlSignalsPtr Convert( | 209 static device::serial::HostControlSignalsPtr Convert( |
| 211 const extensions::core_api::serial::HostControlSignals& input); | 210 const extensions::api::serial::HostControlSignals& input); |
| 212 }; | 211 }; |
| 213 | 212 |
| 214 template <> | 213 template <> |
| 215 struct TypeConverter<device::serial::ConnectionOptionsPtr, | 214 struct TypeConverter<device::serial::ConnectionOptionsPtr, |
| 216 extensions::core_api::serial::ConnectionOptions> { | 215 extensions::api::serial::ConnectionOptions> { |
| 217 static device::serial::ConnectionOptionsPtr Convert( | 216 static device::serial::ConnectionOptionsPtr Convert( |
| 218 const extensions::core_api::serial::ConnectionOptions& input); | 217 const extensions::api::serial::ConnectionOptions& input); |
| 219 }; | 218 }; |
| 220 | 219 |
| 221 } // namespace mojo | 220 } // namespace mojo |
| 222 | 221 |
| 223 #endif // EXTENSIONS_BROWSER_API_SERIAL_SERIAL_CONNECTION_H_ | 222 #endif // EXTENSIONS_BROWSER_API_SERIAL_SERIAL_CONNECTION_H_ |
| OLD | NEW |