Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4993)

Unified Diff: chrome/browser/extensions/api/serial/serial_io_handler_win.cc

Issue 363583002: Convert SerialIoHandler to use Mojo types. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove "default" case Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/api/serial/serial_io_handler_win.h ('k') | device/serial/serial.mojom » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/api/serial/serial_io_handler_win.cc
diff --git a/chrome/browser/extensions/api/serial/serial_io_handler_win.cc b/chrome/browser/extensions/api/serial/serial_io_handler_win.cc
index a8a12f9045ec2d330b76388997c3f0160f29b6fc..4866a63d21384a2cbfb672a5c9a97a2f42e8532e 100644
--- a/chrome/browser/extensions/api/serial/serial_io_handler_win.cc
+++ b/chrome/browser/extensions/api/serial/serial_io_handler_win.cc
@@ -38,33 +38,33 @@ int BitrateToSpeedConstant(int bitrate) {
#undef BITRATE_TO_SPEED_CASE
}
-int DataBitsEnumToConstant(api::serial::DataBits data_bits) {
+int DataBitsEnumToConstant(device::serial::DataBits data_bits) {
switch (data_bits) {
- case api::serial::DATA_BITS_SEVEN:
+ case device::serial::DATA_BITS_SEVEN:
return 7;
- case api::serial::DATA_BITS_EIGHT:
+ case device::serial::DATA_BITS_EIGHT:
default:
return 8;
}
}
-int ParityBitEnumToConstant(api::serial::ParityBit parity_bit) {
+int ParityBitEnumToConstant(device::serial::ParityBit parity_bit) {
switch (parity_bit) {
- case api::serial::PARITY_BIT_EVEN:
+ case device::serial::PARITY_BIT_EVEN:
return EVENPARITY;
- case api::serial::PARITY_BIT_ODD:
+ case device::serial::PARITY_BIT_ODD:
return SPACEPARITY;
- case api::serial::PARITY_BIT_NO:
+ case device::serial::PARITY_BIT_NO:
default:
return NOPARITY;
}
}
-int StopBitsEnumToConstant(api::serial::StopBits stop_bits) {
+int StopBitsEnumToConstant(device::serial::StopBits stop_bits) {
switch (stop_bits) {
- case api::serial::STOP_BITS_TWO:
+ case device::serial::STOP_BITS_TWO:
return TWOSTOPBITS;
- case api::serial::STOP_BITS_ONE:
+ case device::serial::STOP_BITS_ONE:
default:
return ONESTOPBIT;
}
@@ -98,35 +98,35 @@ int SpeedConstantToBitrate(int speed) {
#undef SPEED_TO_BITRATE_CASE
}
-api::serial::DataBits DataBitsConstantToEnum(int data_bits) {
+device::serial::DataBits DataBitsConstantToEnum(int data_bits) {
switch (data_bits) {
case 7:
- return api::serial::DATA_BITS_SEVEN;
+ return device::serial::DATA_BITS_SEVEN;
case 8:
default:
- return api::serial::DATA_BITS_EIGHT;
+ return device::serial::DATA_BITS_EIGHT;
}
}
-api::serial::ParityBit ParityBitConstantToEnum(int parity_bit) {
+device::serial::ParityBit ParityBitConstantToEnum(int parity_bit) {
switch (parity_bit) {
case EVENPARITY:
- return api::serial::PARITY_BIT_EVEN;
+ return device::serial::PARITY_BIT_EVEN;
case ODDPARITY:
- return api::serial::PARITY_BIT_ODD;
+ return device::serial::PARITY_BIT_ODD;
case NOPARITY:
default:
- return api::serial::PARITY_BIT_NO;
+ return device::serial::PARITY_BIT_NO;
}
}
-api::serial::StopBits StopBitsConstantToEnum(int stop_bits) {
+device::serial::StopBits StopBitsConstantToEnum(int stop_bits) {
switch (stop_bits) {
case TWOSTOPBITS:
- return api::serial::STOP_BITS_TWO;
+ return device::serial::STOP_BITS_TWO;
case ONESTOPBIT:
default:
- return api::serial::STOP_BITS_ONE;
+ return device::serial::STOP_BITS_ONE;
}
}
@@ -195,7 +195,7 @@ void SerialIoHandlerWin::ReadImpl() {
COMSTAT status;
if (!ClearCommError(file().GetPlatformFile(), &errors, &status) ||
errors != 0) {
- QueueReadCompleted(0, api::serial::RECEIVE_ERROR_SYSTEM_ERROR);
+ QueueReadCompleted(0, device::serial::RECEIVE_ERROR_SYSTEM_ERROR);
return;
}
@@ -205,7 +205,7 @@ void SerialIoHandlerWin::ReadImpl() {
BOOL ok = ::WaitCommEvent(
file().GetPlatformFile(), &event_mask_, &comm_context_->overlapped);
if (!ok && GetLastError() != ERROR_IO_PENDING) {
- QueueReadCompleted(0, api::serial::RECEIVE_ERROR_SYSTEM_ERROR);
+ QueueReadCompleted(0, device::serial::RECEIVE_ERROR_SYSTEM_ERROR);
}
is_comm_pending_ = true;
}
@@ -221,7 +221,7 @@ void SerialIoHandlerWin::WriteImpl() {
NULL,
&write_context_->overlapped);
if (!ok && GetLastError() != ERROR_IO_PENDING) {
- QueueWriteCompleted(0, api::serial::SEND_ERROR_SYSTEM_ERROR);
+ QueueWriteCompleted(0, device::serial::SEND_ERROR_SYSTEM_ERROR);
}
}
@@ -254,7 +254,7 @@ void SerialIoHandlerWin::OnIOCompleted(
if (read_canceled()) {
ReadCompleted(bytes_transferred, read_cancel_reason());
} else if (error != ERROR_SUCCESS && error != ERROR_OPERATION_ABORTED) {
- ReadCompleted(0, api::serial::RECEIVE_ERROR_SYSTEM_ERROR);
+ ReadCompleted(0, device::serial::RECEIVE_ERROR_SYSTEM_ERROR);
} else if (pending_read_buffer()) {
BOOL ok = ::ReadFile(file().GetPlatformFile(),
pending_read_buffer()->data(),
@@ -262,31 +262,31 @@ void SerialIoHandlerWin::OnIOCompleted(
NULL,
&read_context_->overlapped);
if (!ok && GetLastError() != ERROR_IO_PENDING) {
- ReadCompleted(0, api::serial::RECEIVE_ERROR_SYSTEM_ERROR);
+ ReadCompleted(0, device::serial::RECEIVE_ERROR_SYSTEM_ERROR);
}
}
} else if (context == read_context_) {
if (read_canceled()) {
ReadCompleted(bytes_transferred, read_cancel_reason());
} else if (error != ERROR_SUCCESS && error != ERROR_OPERATION_ABORTED) {
- ReadCompleted(0, api::serial::RECEIVE_ERROR_SYSTEM_ERROR);
+ ReadCompleted(0, device::serial::RECEIVE_ERROR_SYSTEM_ERROR);
} else {
- ReadCompleted(
- bytes_transferred,
- error == ERROR_SUCCESS ? api::serial::RECEIVE_ERROR_NONE
- : api::serial::RECEIVE_ERROR_SYSTEM_ERROR);
+ ReadCompleted(bytes_transferred,
+ error == ERROR_SUCCESS
+ ? device::serial::RECEIVE_ERROR_NONE
+ : device::serial::RECEIVE_ERROR_SYSTEM_ERROR);
}
} else if (context == write_context_) {
DCHECK(pending_write_buffer());
if (write_canceled()) {
WriteCompleted(0, write_cancel_reason());
} else if (error != ERROR_SUCCESS && error != ERROR_OPERATION_ABORTED) {
- WriteCompleted(0, api::serial::SEND_ERROR_SYSTEM_ERROR);
+ WriteCompleted(0, device::serial::SEND_ERROR_SYSTEM_ERROR);
} else {
- WriteCompleted(
- bytes_transferred,
- error == ERROR_SUCCESS ? api::serial::SEND_ERROR_NONE
- : api::serial::SEND_ERROR_SYSTEM_ERROR);
+ WriteCompleted(bytes_transferred,
+ error == ERROR_SUCCESS
+ ? device::serial::SEND_ERROR_NONE
+ : device::serial::SEND_ERROR_SYSTEM_ERROR);
}
} else {
NOTREACHED() << "Invalid IOContext";
@@ -294,22 +294,22 @@ void SerialIoHandlerWin::OnIOCompleted(
}
bool SerialIoHandlerWin::ConfigurePort(
- const api::serial::ConnectionOptions& options) {
+ const device::serial::ConnectionOptions& options) {
DCB config = {0};
config.DCBlength = sizeof(config);
if (!GetCommState(file().GetPlatformFile(), &config)) {
return false;
}
- if (options.bitrate.get())
- config.BaudRate = BitrateToSpeedConstant(*options.bitrate);
- if (options.data_bits != api::serial::DATA_BITS_NONE)
+ if (options.bitrate)
+ config.BaudRate = BitrateToSpeedConstant(options.bitrate);
+ if (options.data_bits != device::serial::DATA_BITS_NONE)
config.ByteSize = DataBitsEnumToConstant(options.data_bits);
- if (options.parity_bit != api::serial::PARITY_BIT_NONE)
+ if (options.parity_bit != device::serial::PARITY_BIT_NONE)
config.Parity = ParityBitEnumToConstant(options.parity_bit);
- if (options.stop_bits != api::serial::STOP_BITS_NONE)
+ if (options.stop_bits != device::serial::STOP_BITS_NONE)
config.StopBits = StopBitsEnumToConstant(options.stop_bits);
- if (options.cts_flow_control.get()) {
- if (*options.cts_flow_control) {
+ if (options.has_cts_flow_control) {
+ if (options.cts_flow_control) {
config.fOutxCtsFlow = TRUE;
config.fRtsControl = RTS_CONTROL_HANDSHAKE;
} else {
@@ -325,48 +325,52 @@ bool SerialIoHandlerWin::Flush() const {
0;
}
-bool SerialIoHandlerWin::GetControlSignals(
- api::serial::DeviceControlSignals* signals) const {
+device::serial::DeviceControlSignalsPtr SerialIoHandlerWin::GetControlSignals()
+ const {
DWORD status;
if (!GetCommModemStatus(file().GetPlatformFile(), &status)) {
- return false;
+ return device::serial::DeviceControlSignalsPtr();
}
+
+ device::serial::DeviceControlSignalsPtr signals(
+ device::serial::DeviceControlSignals::New());
signals->dcd = (status & MS_RLSD_ON) != 0;
signals->cts = (status & MS_CTS_ON) != 0;
signals->dsr = (status & MS_DSR_ON) != 0;
signals->ri = (status & MS_RING_ON) != 0;
- return true;
+ return signals.Pass();
}
bool SerialIoHandlerWin::SetControlSignals(
- const api::serial::HostControlSignals& signals) {
- if (signals.dtr.get()) {
+ const device::serial::HostControlSignals& signals) {
+ if (signals.has_dtr) {
if (!EscapeCommFunction(file().GetPlatformFile(),
- *signals.dtr ? SETDTR : CLRDTR)) {
+ signals.dtr ? SETDTR : CLRDTR)) {
return false;
}
}
- if (signals.rts.get()) {
+ if (signals.has_rts) {
if (!EscapeCommFunction(file().GetPlatformFile(),
- *signals.rts ? SETRTS : CLRRTS)) {
+ signals.rts ? SETRTS : CLRRTS)) {
return false;
}
}
return true;
}
-bool SerialIoHandlerWin::GetPortInfo(api::serial::ConnectionInfo* info) const {
+device::serial::ConnectionInfoPtr SerialIoHandlerWin::GetPortInfo() const {
DCB config = {0};
config.DCBlength = sizeof(config);
if (!GetCommState(file().GetPlatformFile(), &config)) {
- return false;
+ return device::serial::ConnectionInfoPtr();
}
- info->bitrate.reset(new int(SpeedConstantToBitrate(config.BaudRate)));
+ device::serial::ConnectionInfoPtr info(device::serial::ConnectionInfo::New());
+ info->bitrate = SpeedConstantToBitrate(config.BaudRate);
info->data_bits = DataBitsConstantToEnum(config.ByteSize);
info->parity_bit = ParityBitConstantToEnum(config.Parity);
info->stop_bits = StopBitsConstantToEnum(config.StopBits);
- info->cts_flow_control.reset(new bool(config.fOutxCtsFlow != 0));
- return true;
+ info->cts_flow_control = config.fOutxCtsFlow != 0;
+ return info.Pass();
}
std::string SerialIoHandler::MaybeFixUpPortName(const std::string& port_name) {
« no previous file with comments | « chrome/browser/extensions/api/serial/serial_io_handler_win.h ('k') | device/serial/serial.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698