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

Unified Diff: chrome/browser/google_apis/operation_registry.h

Issue 10939011: Reland "Revert 156830 - drive: Stop exposing operation_registry() from DriveServiceInterface" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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
Index: chrome/browser/google_apis/operation_registry.h
diff --git a/chrome/browser/google_apis/operation_registry.h b/chrome/browser/google_apis/operation_registry.h
index 477ad1b5396f15dc40523b4654f80f2a8efd1778..9dc1c2eca7fe2284b7dcca1baadfacc2a985333f 100644
--- a/chrome/browser/google_apis/operation_registry.h
+++ b/chrome/browser/google_apis/operation_registry.h
@@ -16,6 +16,57 @@
namespace gdata {
+// Unique ID to identify each operation.
+typedef int32 OperationID;
+
+// Enumeration type for indicating the direction of the operation.
+enum OperationType {
+ OPERATION_UPLOAD,
+ OPERATION_DOWNLOAD,
+ OPERATION_OTHER,
+};
+
+// Enumeration type for indicating the state of the transfer.
+enum OperationTransferState {
+ OPERATION_NOT_STARTED,
+ OPERATION_STARTED,
+ OPERATION_IN_PROGRESS,
+ OPERATION_COMPLETED,
+ OPERATION_FAILED,
+ OPERATION_SUSPENDED,
+};
+
+// Returns string representations of the operation type and state, which are
+// exposed to the private extension API as in:
+// operation.chrome/common/extensions/api/file_browser_private.json
+std::string OperationTypeToString(OperationType type);
+std::string OperationTransferStateToString(OperationTransferState state);
+
+// Structure that packs progress information of each operation.
+struct OperationProgressStatus {
+ OperationProgressStatus(OperationType type, const FilePath& file_path);
+ // For debugging
+ std::string DebugString() const;
+
+ OperationID operation_id;
+
+ // Type of the operation: upload/download.
+ OperationType operation_type;
+ // GData path of the file dealt with the current operation.
+ FilePath file_path;
+ // Current state of the transfer;
+ OperationTransferState transfer_state;
+ // The time when the operation is initiated.
+ base::Time start_time;
+ // Current fraction of progress of the operation.
+ int64 progress_current;
+ // Expected total number of bytes to be transferred in the operation.
+ // -1 if no expectation is available (yet).
+ int64 progress_total;
+};
+typedef std::vector<OperationProgressStatus> OperationProgressStatusList;
+
+
// This class tracks all the in-flight GData operation objects and manage their
// lifetime.
class OperationRegistry {
@@ -23,61 +74,11 @@ class OperationRegistry {
OperationRegistry();
~OperationRegistry();
- // Unique ID to identify each operation.
- typedef int32 OperationID;
-
- // Enumeration type for indicating the direction of the operation.
- enum OperationType {
- OPERATION_UPLOAD,
- OPERATION_DOWNLOAD,
- OPERATION_OTHER,
- };
-
- enum OperationTransferState {
- OPERATION_NOT_STARTED,
- OPERATION_STARTED,
- OPERATION_IN_PROGRESS,
- OPERATION_COMPLETED,
- OPERATION_FAILED,
- OPERATION_SUSPENDED,
- };
-
- // Returns string representations of the operation type and state, which are
- // exposed to the private extension API as in:
- // operation.chrome/common/extensions/api/file_browser_private.json
- static std::string OperationTypeToString(OperationType type);
- static std::string OperationTransferStateToString(
- OperationTransferState state);
-
- // Structure that packs progress information of each operation.
- struct ProgressStatus {
- ProgressStatus(OperationType type, const FilePath& file_path);
- // For debugging
- std::string DebugString() const;
-
- OperationID operation_id;
-
- // Type of the operation: upload/download.
- OperationType operation_type;
- // GData path of the file dealt with the current operation.
- FilePath file_path;
- // Current state of the transfer;
- OperationTransferState transfer_state;
- // The time when the operation is initiated.
- base::Time start_time;
- // Current fraction of progress of the operation.
- int64 progress_current;
- // Expected total number of bytes to be transferred in the operation.
- // -1 if no expectation is available (yet).
- int64 progress_total;
- };
- typedef std::vector<ProgressStatus> ProgressStatusList;
-
// Observer interface for listening changes in the active set of operations.
class Observer {
public:
// Called when a GData operation started, made some progress, or finished.
- virtual void OnProgressUpdate(const ProgressStatusList& list) = 0;
+ virtual void OnProgressUpdate(const OperationProgressStatusList& list) = 0;
// Called when GData authentication failed.
virtual void OnAuthenticationFailed() {}
protected:
@@ -101,7 +102,9 @@ class OperationRegistry {
void Cancel();
// Retrieves the current progress status of the operation.
- const ProgressStatus& progress_status() const { return progress_status_; }
+ const OperationProgressStatus& progress_status() const {
+ return progress_status_;
+ }
protected:
// Notifies the registry about current status.
@@ -125,7 +128,7 @@ class OperationRegistry {
virtual void DoCancel() = 0;
OperationRegistry* const registry_;
- ProgressStatus progress_status_;
+ OperationProgressStatus progress_status_;
};
// Cancels all in-flight operations.
@@ -136,7 +139,7 @@ class OperationRegistry {
bool CancelForFilePath(const FilePath& file_path);
// Obtains the list of currently active operations.
- ProgressStatusList GetProgressStatusList();
+ OperationProgressStatusList GetProgressStatusList();
// Sets an observer. The registry do NOT own observers; before destruction
// they need to be removed from the registry.
@@ -155,14 +158,15 @@ class OperationRegistry {
void OnOperationProgress(OperationID operation);
void OnOperationFinish(OperationID operation);
void OnOperationSuspend(OperationID operation);
- void OnOperationResume(Operation* operation, ProgressStatus* new_status);
+ void OnOperationResume(Operation* operation,
+ OperationProgressStatus* new_status);
void OnOperationAuthFailed();
bool IsFileTransferOperation(const Operation* operation) const;
// Controls the frequency of notifications, not to flood the listeners with
// too many events.
- bool ShouldNotifyStatusNow(const ProgressStatusList& list);
+ bool ShouldNotifyStatusNow(const OperationProgressStatusList& list);
// Sends notifications to the observers after checking that the frequency is
// not too high by ShouldNotifyStatusNow.
void NotifyStatusToObservers();
« no previous file with comments | « chrome/browser/google_apis/gdata_operations_unittest.cc ('k') | chrome/browser/google_apis/operation_registry.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698