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

Unified Diff: chrome/browser/chromeos/gdata/operations_base.h

Issue 10913184: Move basic operation components for Drive API to chrome/browser/google_apis directory (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years, 3 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/chromeos/gdata/operation_runner.cc ('k') | chrome/browser/chromeos/gdata/operations_base.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/gdata/operations_base.h
diff --git a/chrome/browser/chromeos/gdata/operations_base.h b/chrome/browser/chromeos/gdata/operations_base.h
deleted file mode 100644
index 2964c86ec8a458d482032f4e9644e6e685eb2073..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/gdata/operations_base.h
+++ /dev/null
@@ -1,234 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_CHROMEOS_GDATA_OPERATIONS_BASE_H_
-#define CHROME_BROWSER_CHROMEOS_GDATA_OPERATIONS_BASE_H_
-
-#include <string>
-#include <vector>
-
-#include "base/callback.h"
-#include "chrome/browser/chromeos/gdata/gdata_errorcode.h"
-#include "chrome/browser/chromeos/gdata/operation_registry.h"
-#include "google_apis/gaia/oauth2_access_token_consumer.h"
-#include "googleurl/src/gurl.h"
-#include "net/http/http_response_headers.h"
-#include "net/url_request/url_fetcher.h"
-#include "net/url_request/url_fetcher_delegate.h"
-
-class OAuth2AccessTokenFetcher;
-
-namespace gdata {
-
-//================================ AuthOperation ===============================
-
-// Callback type for authentication related DriveServiceInterface calls.
-typedef base::Callback<void(GDataErrorCode error,
- const std::string& token)> AuthStatusCallback;
-
-// OAuth2 authorization token retrieval operation.
-class AuthOperation : public OperationRegistry::Operation,
- public OAuth2AccessTokenConsumer {
- public:
- AuthOperation(OperationRegistry* registry,
- const AuthStatusCallback& callback,
- const std::vector<std::string>& scopes,
- const std::string& refresh_token);
- virtual ~AuthOperation();
- void Start();
-
- // Overridden from OAuth2AccessTokenConsumer:
- virtual void OnGetTokenSuccess(const std::string& access_token,
- const base::Time& expiration_time) OVERRIDE;
- virtual void OnGetTokenFailure(const GoogleServiceAuthError& error) OVERRIDE;
-
- // Overridden from OperationRegistry::Operation
- virtual void DoCancel() OVERRIDE;
-
- private:
- std::string refresh_token_;
- AuthStatusCallback callback_;
- std::vector<std::string> scopes_;
- scoped_ptr<OAuth2AccessTokenFetcher> oauth2_access_token_fetcher_;
-
- DISALLOW_COPY_AND_ASSIGN(AuthOperation);
-};
-
-//======================= AuthenticatedOperationInterface ======================
-
-// An interface for implementing an operation used by DriveServiceInterface.
-class AuthenticatedOperationInterface {
- public:
- // Callback to DriveServiceInterface upon for re-authentication.
- typedef base::Callback<void(AuthenticatedOperationInterface* operation)>
- ReAuthenticateCallback;
-
- virtual ~AuthenticatedOperationInterface() {}
-
- // Starts the actual operation after obtaining an authentication token
- // |auth_token|.
- virtual void Start(const std::string& auth_token) = 0;
-
- // Invoked when the authentication failed with an error code |code|.
- virtual void OnAuthFailed(GDataErrorCode code) = 0;
-
- // Sets the callback to DriveServiceInterface when the operation restarts due
- // to an authentication failure.
- virtual void SetReAuthenticateCallback(
- const ReAuthenticateCallback& callback) = 0;
-};
-
-//============================ UrlFetchOperationBase ===========================
-
-// Callback type for getting the content from URLFetcher::GetResponseAsString().
-typedef base::Callback<void(
- GDataErrorCode error,
- scoped_ptr<std::string> content)> GetContentCallback;
-
-// Base class for operations that are fetching URLs.
-class UrlFetchOperationBase : public AuthenticatedOperationInterface,
- public OperationRegistry::Operation,
- public net::URLFetcherDelegate {
- public:
- // Overridden from AuthenticatedOperationInterface.
- virtual void Start(const std::string& auth_token) OVERRIDE;
-
- // Overridden from AuthenticatedOperationInterface.
- virtual void SetReAuthenticateCallback(
- const ReAuthenticateCallback& callback) OVERRIDE;
-
- protected:
- explicit UrlFetchOperationBase(OperationRegistry* registry);
- UrlFetchOperationBase(OperationRegistry* registry,
- OperationRegistry::OperationType type,
- const FilePath& path);
- virtual ~UrlFetchOperationBase();
-
- // Gets URL for the request.
- virtual GURL GetURL() const = 0;
- // Returns the request type. A derived class should override this method
- // for a request type other than HTTP GET.
- virtual net::URLFetcher::RequestType GetRequestType() const;
- // Returns the extra HTTP headers for the request. A derived class should
- // override this method to specify any extra headers needed for the request.
- virtual std::vector<std::string> GetExtraRequestHeaders() const;
- // Used by a derived class to add any content data to the request.
- // Returns true if |upload_content_type| and |upload_content| are updated
- // with the content type and data for the request.
- virtual bool GetContentData(std::string* upload_content_type,
- std::string* upload_content);
-
- // Invoked by OnURLFetchComplete when the operation completes without an
- // authentication error. Must be implemented by a derived class.
- virtual void ProcessURLFetchResults(const net::URLFetcher* source) = 0;
-
- // Invoked when it needs to notify the status. Chunked operations that
- // constructs a logically single operation from multiple physical operations
- // should notify resume/suspend instead of start/finish.
- virtual void NotifyStartToOperationRegistry();
- virtual void NotifySuccessToOperationRegistry();
-
- // Invoked by this base class upon an authentication error or cancel by
- // an user operation. Must be implemented by a derived class.
- virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) = 0;
-
- // Implement OperationRegistry::Operation
- virtual void DoCancel() OVERRIDE;
-
- // Overridden from URLFetcherDelegate.
- virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE;
-
- // Overridden from AuthenticatedOperationInterface.
- virtual void OnAuthFailed(GDataErrorCode code) OVERRIDE;
-
- // Invoked when ProcessURLFetchResults() is completed.
- void OnProcessURLFetchResultsComplete(bool result);
-
- // Returns an appropriate GDataErrorCode based on the HTTP response code and
- // the status of the URLFetcher.
- GDataErrorCode GetErrorCode(const net::URLFetcher* source) const;
-
- std::string GetResponseHeadersAsString(
- const net::URLFetcher* url_fetcher);
-
- ReAuthenticateCallback re_authenticate_callback_;
- int re_authenticate_count_;
- bool save_temp_file_;
- FilePath output_file_path_;
- scoped_ptr<net::URLFetcher> url_fetcher_;
- bool started_;
-};
-
-//============================ EntryActionOperation ============================
-
-// Callback type for Delete/Move DocumentServiceInterface calls.
-typedef base::Callback<void(GDataErrorCode error,
- const GURL& document_url)> EntryActionCallback;
-
-// This class performs a simple action over a given entry (document/file).
-// It is meant to be used for operations that return no JSON blobs.
-class EntryActionOperation : public UrlFetchOperationBase {
- public:
- EntryActionOperation(OperationRegistry* registry,
- const EntryActionCallback& callback,
- const GURL& document_url);
- virtual ~EntryActionOperation();
-
- protected:
- // Overridden from UrlFetchOperationBase.
- virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
- virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE;
-
- const GURL& document_url() const { return document_url_; }
-
- private:
- EntryActionCallback callback_;
- GURL document_url_;
-
- DISALLOW_COPY_AND_ASSIGN(EntryActionOperation);
-};
-
-//============================== GetDataOperation ==============================
-
-// Callback type for DocumentServiceInterface::GetDocuments.
-// Note: feed_data argument should be passed using base::Passed(&feed_data), not
-// feed_data.Pass().
-typedef base::Callback<void(GDataErrorCode error,
- scoped_ptr<base::Value> feed_data)> GetDataCallback;
-
-// This class performs the operation for fetching and parsing JSON data content.
-class GetDataOperation : public UrlFetchOperationBase {
- public:
- GetDataOperation(OperationRegistry* registry,
- const GetDataCallback& callback);
- virtual ~GetDataOperation();
-
- // Parse GData JSON response.
- virtual void ParseResponse(GDataErrorCode fetch_error_code,
- const std::string& data);
-
- protected:
- // Overridden from UrlFetchOperationBase.
- virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
- virtual void RunCallbackOnPrematureFailure(
- GDataErrorCode fetch_error_code) OVERRIDE;
- void RunCallback(GDataErrorCode fetch_error_code,
- scoped_ptr<base::Value> value);
-
- private:
- // Called when ParseJsonOnBlockingPool() is completed.
- void OnDataParsed(gdata::GDataErrorCode fetch_error_code,
- scoped_ptr<base::Value>* value);
-
- GetDataCallback callback_;
-
- // Note: This should remain the last member so it'll be destroyed and
- // invalidate its weak pointers before any other members are destroyed.
- base::WeakPtrFactory<GetDataOperation> weak_ptr_factory_;
- DISALLOW_COPY_AND_ASSIGN(GetDataOperation);
-};
-
-} // namespace gdata
-
-#endif // CHROME_BROWSER_CHROMEOS_GDATA_OPERATIONS_BASE_H_
« no previous file with comments | « chrome/browser/chromeos/gdata/operation_runner.cc ('k') | chrome/browser/chromeos/gdata/operations_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698