1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_V1_ORIGIN_OPERATION_QUEUE_H_ 6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_V1_ORIGIN_OPERATION_QUEUE_H_ 7 8 #include <deque> 9 #include <string> 10 11 #include "base/basictypes.h" 12 #include "url/gurl.h" 13 14 namespace sync_file_system { 15 16 struct OriginOperation { 17 enum Type { 18 UNKNOWN, 19 REGISTERING, 20 ENABLING, 21 DISABLING, 22 UNINSTALLING 23 }; 24 25 GURL origin; 26 Type type; 27 28 OriginOperation(); 29 OriginOperation(const GURL& origin, Type type); 30 ~OriginOperation(); 31 }; 32 33 class OriginOperationQueue { 34 public: 35 OriginOperationQueue(); 36 ~OriginOperationQueue(); 37 38 void Push(const GURL& origin, OriginOperation::Type type); 39 OriginOperation Pop(); 40 bool HasPendingOperation(const GURL& origin) const; 41 size()42 size_t size() const { return queue_.size(); } empty()43 bool empty() const { return queue_.empty(); } 44 45 private: 46 std::deque<OriginOperation> queue_; 47 }; 48 49 } // namespace sync_file_system 50 51 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_V1_ORIGIN_OPERATION_QUEUE_H_ 52