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

Unified Diff: device/u2f/u2f_hid_device.cc

Issue 2743623006: Modify U2F apdu classes to use unique pointers (Closed)
Patch Set: Use more concise form of base::Passed Created 3 years, 9 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 | « device/u2f/u2f_hid_device.h ('k') | device/u2f/u2f_hid_device_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/u2f/u2f_hid_device.cc
diff --git a/device/u2f/u2f_hid_device.cc b/device/u2f/u2f_hid_device.cc
index 4a4380da276e94f04ac64c094c66bd4186d034a1..a8d8bd409fcf1bfc9a0b7c66aed30364fd9885ad 100644
--- a/device/u2f/u2f_hid_device.cc
+++ b/device/u2f/u2f_hid_device.cc
@@ -33,22 +33,22 @@ U2fHidDevice::~U2fHidDevice() {
connection_->Close();
}
-void U2fHidDevice::DeviceTransact(scoped_refptr<U2fApduCommand> command,
+void U2fHidDevice::DeviceTransact(std::unique_ptr<U2fApduCommand> command,
const DeviceCallback& callback) {
- Transition(command, callback);
+ Transition(std::move(command), callback);
}
-void U2fHidDevice::Transition(scoped_refptr<U2fApduCommand> command,
+void U2fHidDevice::Transition(std::unique_ptr<U2fApduCommand> command,
const DeviceCallback& callback) {
switch (state_) {
case State::INIT:
state_ = State::BUSY;
Connect(base::Bind(&U2fHidDevice::OnConnect, weak_factory_.GetWeakPtr(),
- command, callback));
+ base::Passed(&command), callback));
break;
case State::CONNECTED:
state_ = State::BUSY;
- AllocateChannel(command, callback);
+ AllocateChannel(std::move(command), callback);
break;
case State::IDLE: {
state_ = State::BUSY;
@@ -83,7 +83,7 @@ void U2fHidDevice::Connect(const HidService::ConnectCallback& callback) {
hid_service->Connect(device_info_->device_id(), callback);
}
-void U2fHidDevice::OnConnect(scoped_refptr<U2fApduCommand> command,
+void U2fHidDevice::OnConnect(std::unique_ptr<U2fApduCommand> command,
const DeviceCallback& callback,
scoped_refptr<HidConnection> connection) {
if (connection) {
@@ -92,10 +92,10 @@ void U2fHidDevice::OnConnect(scoped_refptr<U2fApduCommand> command,
} else {
state_ = State::DEVICE_ERROR;
}
- Transition(command, callback);
+ Transition(std::move(command), callback);
}
-void U2fHidDevice::AllocateChannel(scoped_refptr<U2fApduCommand> command,
+void U2fHidDevice::AllocateChannel(std::unique_ptr<U2fApduCommand> command,
const DeviceCallback& callback) {
// Send random nonce to device to verify received message
std::vector<uint8_t> nonce(8);
@@ -106,11 +106,11 @@ void U2fHidDevice::AllocateChannel(scoped_refptr<U2fApduCommand> command,
WriteMessage(
message, true,
base::Bind(&U2fHidDevice::OnAllocateChannel, weak_factory_.GetWeakPtr(),
- nonce, command, callback));
+ nonce, base::Passed(&command), callback));
}
void U2fHidDevice::OnAllocateChannel(std::vector<uint8_t> nonce,
- scoped_refptr<U2fApduCommand> command,
+ std::unique_ptr<U2fApduCommand> command,
const DeviceCallback& callback,
bool success,
scoped_refptr<U2fMessage> message) {
@@ -150,7 +150,7 @@ void U2fHidDevice::OnAllocateChannel(std::vector<uint8_t> nonce,
capabilities_ = payload[16];
state_ = State::IDLE;
- Transition(command, callback);
+ Transition(std::move(command), callback);
}
void U2fHidDevice::WriteMessage(scoped_refptr<U2fMessage> message,
@@ -166,7 +166,7 @@ void U2fHidDevice::WriteMessage(scoped_refptr<U2fMessage> message,
connection_->Write(
buffer, buffer->size(),
base::Bind(&U2fHidDevice::PacketWritten, weak_factory_.GetWeakPtr(),
- message, true, base::Passed(std::move(callback))));
+ message, true, base::Passed(&callback)));
}
void U2fHidDevice::PacketWritten(scoped_refptr<U2fMessage> message,
@@ -190,7 +190,7 @@ void U2fHidDevice::ReadMessage(U2fHidMessageCallback callback) {
connection_->Read(base::Bind(&U2fHidDevice::OnRead,
weak_factory_.GetWeakPtr(),
- base::Passed(std::move(callback))));
+ base::Passed(&callback)));
}
void U2fHidDevice::OnRead(U2fHidMessageCallback callback,
@@ -216,7 +216,7 @@ void U2fHidDevice::OnRead(U2fHidMessageCallback callback,
if (channel_id_ != read_message->channel_id()) {
connection_->Read(base::Bind(&U2fHidDevice::OnRead,
weak_factory_.GetWeakPtr(),
- base::Passed(std::move(callback))));
+ base::Passed(&callback)));
return;
}
@@ -228,7 +228,7 @@ void U2fHidDevice::OnRead(U2fHidMessageCallback callback,
// Continue reading additional packets
connection_->Read(base::Bind(&U2fHidDevice::OnReadContinuation,
weak_factory_.GetWeakPtr(), read_message,
- base::Passed(std::move(callback))));
+ base::Passed(&callback)));
}
void U2fHidDevice::OnReadContinuation(scoped_refptr<U2fMessage> message,
@@ -250,7 +250,7 @@ void U2fHidDevice::OnReadContinuation(scoped_refptr<U2fMessage> message,
}
connection_->Read(base::Bind(&U2fHidDevice::OnReadContinuation,
weak_factory_.GetWeakPtr(), message,
- base::Passed(std::move(callback))));
+ base::Passed(&callback)));
}
void U2fHidDevice::MessageReceived(const DeviceCallback& callback,
@@ -261,21 +261,21 @@ void U2fHidDevice::MessageReceived(const DeviceCallback& callback,
Transition(nullptr, callback);
return;
}
- scoped_refptr<U2fApduResponse> response = nullptr;
+ std::unique_ptr<U2fApduResponse> response = nullptr;
if (message)
response = U2fApduResponse::CreateFromMessage(message->GetMessagePayload());
state_ = State::IDLE;
base::WeakPtr<U2fHidDevice> self = weak_factory_.GetWeakPtr();
- callback.Run(success, response);
+ callback.Run(success, std::move(response));
// Executing |callback| may have freed |this|. Check |self| first.
if (self && !pending_transactions_.empty()) {
// If any transactions were queued, process the first one
- scoped_refptr<U2fApduCommand> pending_cmd =
+ std::unique_ptr<U2fApduCommand> pending_cmd =
std::move(pending_transactions_.front().first);
DeviceCallback pending_cb = pending_transactions_.front().second;
pending_transactions_.pop_front();
- Transition(pending_cmd, pending_cb);
+ Transition(std::move(pending_cmd), pending_cb);
}
}
« no previous file with comments | « device/u2f/u2f_hid_device.h ('k') | device/u2f/u2f_hid_device_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698