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 "storage/browser/file_system/quota/open_file_handle.h"
6 
7 #include <stdint.h>
8 
9 #include "storage/browser/file_system/quota/open_file_handle_context.h"
10 #include "storage/browser/file_system/quota/quota_reservation.h"
11 
12 namespace storage {
13 
~OpenFileHandle()14 OpenFileHandle::~OpenFileHandle() {
15   DCHECK(sequence_checker_.CalledOnValidSequence());
16 }
17 
UpdateMaxWrittenOffset(int64_t offset)18 void OpenFileHandle::UpdateMaxWrittenOffset(int64_t offset) {
19   DCHECK(sequence_checker_.CalledOnValidSequence());
20 
21   int64_t growth = context_->UpdateMaxWrittenOffset(offset);
22   if (growth > 0)
23     reservation_->ConsumeReservation(growth);
24 }
25 
AddAppendModeWriteAmount(int64_t amount)26 void OpenFileHandle::AddAppendModeWriteAmount(int64_t amount) {
27   DCHECK(sequence_checker_.CalledOnValidSequence());
28   if (amount <= 0)
29     return;
30 
31   context_->AddAppendModeWriteAmount(amount);
32   reservation_->ConsumeReservation(amount);
33 }
34 
GetEstimatedFileSize() const35 int64_t OpenFileHandle::GetEstimatedFileSize() const {
36   DCHECK(sequence_checker_.CalledOnValidSequence());
37   return context_->GetEstimatedFileSize();
38 }
39 
GetMaxWrittenOffset() const40 int64_t OpenFileHandle::GetMaxWrittenOffset() const {
41   DCHECK(sequence_checker_.CalledOnValidSequence());
42   return context_->GetMaxWrittenOffset();
43 }
44 
platform_path() const45 const base::FilePath& OpenFileHandle::platform_path() const {
46   DCHECK(sequence_checker_.CalledOnValidSequence());
47   return context_->platform_path();
48 }
49 
OpenFileHandle(QuotaReservation * reservation,OpenFileHandleContext * context)50 OpenFileHandle::OpenFileHandle(QuotaReservation* reservation,
51                                OpenFileHandleContext* context)
52     : reservation_(reservation), context_(context) {
53   DCHECK(sequence_checker_.CalledOnValidSequence());
54 }
55 
56 }  // namespace storage
57