Commit 7c76836d authored by Anand K. Mistry's avatar Anand K. Mistry Committed by Commit Bot

Use OnceCallback in google_apis::drive::DriveApiDataRequest

Bug: 1007788
Change-Id: Id2118d76992100771ab28dbde2ff1c20d887e8e4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1974296
Auto-Submit: Anand Mistry <amistry@chromium.org>
Commit-Queue: Stuart Langley <slangley@chromium.org>
Reviewed-by: default avatarStuart Langley <slangley@chromium.org>
Cr-Commit-Position: refs/heads/master@{#726381}
parent de6290f5
...@@ -137,14 +137,13 @@ class DriveApiPartialFieldRequest : public UrlFetchRequestBase { ...@@ -137,14 +137,13 @@ class DriveApiPartialFieldRequest : public UrlFetchRequestBase {
template<class DataType> template<class DataType>
class DriveApiDataRequest : public DriveApiPartialFieldRequest { class DriveApiDataRequest : public DriveApiPartialFieldRequest {
public: public:
typedef base::Callback<void(DriveApiErrorCode error, using Callback = base::OnceCallback<void(DriveApiErrorCode error,
std::unique_ptr<DataType> data)> std::unique_ptr<DataType> data)>;
Callback;
// |callback| is called when the request finishes either by success or by // |callback| is called when the request finishes either by success or by
// failure. On success, a JSON Value object is passed. It must not be null. // failure. On success, a JSON Value object is passed. It must not be null.
DriveApiDataRequest(RequestSender* sender, const Callback& callback) DriveApiDataRequest(RequestSender* sender, Callback callback)
: DriveApiPartialFieldRequest(sender), callback_(callback) { : DriveApiPartialFieldRequest(sender), callback_(std::move(callback)) {
DCHECK(!callback_.is_null()); DCHECK(!callback_.is_null());
} }
~DriveApiDataRequest() override {} ~DriveApiDataRequest() override {}
...@@ -174,7 +173,7 @@ class DriveApiDataRequest : public DriveApiPartialFieldRequest { ...@@ -174,7 +173,7 @@ class DriveApiDataRequest : public DriveApiPartialFieldRequest {
} }
void RunCallbackOnPrematureFailure(DriveApiErrorCode error) override { void RunCallbackOnPrematureFailure(DriveApiErrorCode error) override {
callback_.Run(error, std::unique_ptr<DataType>()); std::move(callback_).Run(error, std::unique_ptr<DataType>());
} }
private: private:
...@@ -188,11 +187,11 @@ class DriveApiDataRequest : public DriveApiPartialFieldRequest { ...@@ -188,11 +187,11 @@ class DriveApiDataRequest : public DriveApiPartialFieldRequest {
void OnDataParsed(DriveApiErrorCode error, std::unique_ptr<DataType> value) { void OnDataParsed(DriveApiErrorCode error, std::unique_ptr<DataType> value) {
if (!value) if (!value)
error = DRIVE_PARSE_ERROR; error = DRIVE_PARSE_ERROR;
callback_.Run(error, std::move(value)); std::move(callback_).Run(error, std::move(value));
OnProcessURLFetchResultsComplete(); OnProcessURLFetchResultsComplete();
} }
const Callback callback_; Callback callback_;
// Note: This should remain the last member so it'll be destroyed and // Note: This should remain the last member so it'll be destroyed and
// invalidate its weak pointers before any other members are destroyed. // invalidate its weak pointers before any other members are destroyed.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment