From b246c17850687e7b15b644b761fbfe835ffc1c32 Mon Sep 17 00:00:00 2001 From: Alexander Tkachev Date: Thu, 26 May 2016 19:22:27 +0600 Subject: CLOUD: Fix CurlJsonRequest to use JsonCallback Type safety first. --- backends/cloud/onedrive/onedrivestorage.cpp | 12 ++++++------ backends/cloud/onedrive/onedrivestorage.h | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'backends/cloud/onedrive') diff --git a/backends/cloud/onedrive/onedrivestorage.cpp b/backends/cloud/onedrive/onedrivestorage.cpp index 36b3e26f1b..833ba8e558 100644 --- a/backends/cloud/onedrive/onedrivestorage.cpp +++ b/backends/cloud/onedrive/onedrivestorage.cpp @@ -56,7 +56,7 @@ void OneDriveStorage::getAccessToken(BoolCallback callback, Common::String code) return; } - Networking::DataCallback innerCallback = new Common::CallbackBridge(this, &OneDriveStorage::tokenRefreshed, callback); + Networking::JsonCallback innerCallback = new Common::CallbackBridge(this, &OneDriveStorage::tokenRefreshed, callback); Networking::CurlJsonRequest *request = new Networking::CurlJsonRequest(innerCallback, "https://login.live.com/oauth20_token.srf"); if (codeFlow) { request->addPostField("code=" + code); @@ -71,8 +71,8 @@ void OneDriveStorage::getAccessToken(BoolCallback callback, Common::String code) ConnMan.addRequest(request); } -void OneDriveStorage::tokenRefreshed(BoolCallback callback, Networking::RequestDataPair pair) { - Common::JSONValue *json = (Common::JSONValue *)pair.value; +void OneDriveStorage::tokenRefreshed(BoolCallback callback, Networking::RequestJsonPair pair) { + Common::JSONValue *json = pair.value; if (!json) { warning("OneDriveStorage: got NULL instead of JSON"); if (callback) (*callback)(RequestBoolPair(-1, false)); @@ -117,8 +117,8 @@ void OneDriveStorage::printJsonTokenReceived(RequestBoolPair pair) { if (pair.value) syncSaves(0); //try again } -void OneDriveStorage::printJson(Networking::RequestDataPair pair) { - Common::JSONValue *json = (Common::JSONValue *)pair.value; +void OneDriveStorage::printJson(Networking::RequestJsonPair pair) { + Common::JSONValue *json = pair.value; if (!json) { warning("printJson: NULL"); return; @@ -139,7 +139,7 @@ void OneDriveStorage::printJson(Networking::RequestDataPair pair) { int32 OneDriveStorage::syncSaves(BoolCallback callback) { //this is not the real syncSaves() implementation - Networking::DataCallback innerCallback = new Common::Callback(this, &OneDriveStorage::printJson); + Networking::JsonCallback innerCallback = new Common::Callback(this, &OneDriveStorage::printJson); Networking::CurlJsonRequest *request = new Networking::CurlJsonRequest(innerCallback, "https://api.onedrive.com/v1.0/drives/"); request->addHeader("Authorization: bearer " + _token); return ConnMan.addRequest(request); diff --git a/backends/cloud/onedrive/onedrivestorage.h b/backends/cloud/onedrive/onedrivestorage.h index 3c92880750..1cb7017d64 100644 --- a/backends/cloud/onedrive/onedrivestorage.h +++ b/backends/cloud/onedrive/onedrivestorage.h @@ -25,6 +25,7 @@ #include "backends/cloud/storage.h" #include "common/callback.h" +#include "backends/networking/curl/curljsonrequest.h" namespace Cloud { namespace OneDrive { @@ -49,10 +50,10 @@ class OneDriveStorage: public Cloud::Storage { * continue your work when new token is available. */ void getAccessToken(BoolCallback callback, Common::String code = ""); - void tokenRefreshed(BoolCallback callback, Networking::RequestDataPair pair); + void tokenRefreshed(BoolCallback callback, Networking::RequestJsonPair pair); void codeFlowComplete(RequestBoolPair pair); - void printJson(Networking::RequestDataPair pair); + void printJson(Networking::RequestJsonPair pair); void printJsonTokenReceived(RequestBoolPair pair); public: virtual ~OneDriveStorage(); -- cgit v1.2.3