| OLD | NEW | 
|---|
|  | (Empty) | 
| 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 #include "webkit/browser/fileapi/quota/quota_reservation_manager.h" |  | 
| 6 |  | 
| 7 #include "webkit/browser/fileapi/quota/quota_reservation.h" |  | 
| 8 #include "webkit/browser/fileapi/quota/quota_reservation_buffer.h" |  | 
| 9 |  | 
| 10 namespace fileapi { |  | 
| 11 |  | 
| 12 QuotaReservationManager::QuotaReservationManager( |  | 
| 13     scoped_ptr<QuotaBackend> backend) |  | 
| 14     : backend_(backend.Pass()), |  | 
| 15       weak_ptr_factory_(this) { |  | 
| 16   sequence_checker_.DetachFromSequence(); |  | 
| 17 } |  | 
| 18 |  | 
| 19 QuotaReservationManager::~QuotaReservationManager() { |  | 
| 20   DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |  | 
| 21 } |  | 
| 22 |  | 
| 23 void QuotaReservationManager::ReserveQuota( |  | 
| 24     const GURL& origin, |  | 
| 25     FileSystemType type, |  | 
| 26     int64 size, |  | 
| 27     const ReserveQuotaCallback& callback) { |  | 
| 28   DCHECK(origin.is_valid()); |  | 
| 29   backend_->ReserveQuota(origin, type, size, callback); |  | 
| 30 } |  | 
| 31 |  | 
| 32 void QuotaReservationManager::ReleaseReservedQuota( |  | 
| 33     const GURL& origin, |  | 
| 34     FileSystemType type, |  | 
| 35     int64 size) { |  | 
| 36   DCHECK(origin.is_valid()); |  | 
| 37   backend_->ReleaseReservedQuota(origin, type, size); |  | 
| 38 } |  | 
| 39 |  | 
| 40 void QuotaReservationManager::CommitQuotaUsage( |  | 
| 41     const GURL& origin, |  | 
| 42     FileSystemType type, |  | 
| 43     int64 delta) { |  | 
| 44   DCHECK(origin.is_valid()); |  | 
| 45   backend_->CommitQuotaUsage(origin, type, delta); |  | 
| 46 } |  | 
| 47 |  | 
| 48 void QuotaReservationManager::IncrementDirtyCount(const GURL& origin, |  | 
| 49                                                  FileSystemType type) { |  | 
| 50   DCHECK(origin.is_valid()); |  | 
| 51   backend_->IncrementDirtyCount(origin, type); |  | 
| 52 } |  | 
| 53 |  | 
| 54 void QuotaReservationManager::DecrementDirtyCount(const GURL& origin, |  | 
| 55                                                  FileSystemType type) { |  | 
| 56   DCHECK(origin.is_valid()); |  | 
| 57   backend_->DecrementDirtyCount(origin, type); |  | 
| 58 } |  | 
| 59 |  | 
| 60 scoped_refptr<QuotaReservationBuffer> |  | 
| 61 QuotaReservationManager::GetReservationBuffer( |  | 
| 62     const GURL& origin, |  | 
| 63     FileSystemType type) { |  | 
| 64   DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |  | 
| 65   DCHECK(origin.is_valid()); |  | 
| 66   QuotaReservationBuffer** buffer = |  | 
| 67       &reservation_buffers_[std::make_pair(origin, type)]; |  | 
| 68   if (!*buffer) { |  | 
| 69     *buffer = new QuotaReservationBuffer( |  | 
| 70         weak_ptr_factory_.GetWeakPtr(), origin, type); |  | 
| 71   } |  | 
| 72   return make_scoped_refptr(*buffer); |  | 
| 73 } |  | 
| 74 |  | 
| 75 void QuotaReservationManager::ReleaseReservationBuffer( |  | 
| 76     QuotaReservationBuffer* reservation_buffer) { |  | 
| 77   DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |  | 
| 78   std::pair<GURL, FileSystemType> key(reservation_buffer->origin(), |  | 
| 79                                       reservation_buffer->type()); |  | 
| 80   DCHECK_EQ(reservation_buffers_[key], reservation_buffer); |  | 
| 81   reservation_buffers_.erase(key); |  | 
| 82 } |  | 
| 83 |  | 
| 84 scoped_refptr<QuotaReservation> QuotaReservationManager::CreateReservation( |  | 
| 85     const GURL& origin, |  | 
| 86     FileSystemType type) { |  | 
| 87   DCHECK(origin.is_valid()); |  | 
| 88   return GetReservationBuffer(origin, type)->CreateReservation();; |  | 
| 89 } |  | 
| 90 |  | 
| 91 }  // namespace fileapi |  | 
| OLD | NEW | 
|---|