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

Side by Side Diff: chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate.cc

Issue 318563002: [fsp] Introduce BufferingFileStreamReader to read files in bigger chunks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed a test. Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate. h" 5 #include "chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate. h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_st ream_reader.h"
8 #include "chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reade r.h" 9 #include "chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reade r.h"
9 #include "chrome/browser/chromeos/file_system_provider/fileapi/provider_async_fi le_util.h" 10 #include "chrome/browser/chromeos/file_system_provider/fileapi/provider_async_fi le_util.h"
10 #include "content/public/browser/browser_thread.h" 11 #include "content/public/browser/browser_thread.h"
11 #include "webkit/browser/blob/file_stream_reader.h" 12 #include "webkit/browser/blob/file_stream_reader.h"
12 #include "webkit/browser/fileapi/file_stream_writer.h" 13 #include "webkit/browser/fileapi/file_stream_writer.h"
13 #include "webkit/browser/fileapi/file_system_url.h" 14 #include "webkit/browser/fileapi/file_system_url.h"
14 15
15 using content::BrowserThread; 16 using content::BrowserThread;
16 17
17 namespace chromeos { 18 namespace chromeos {
18 namespace file_system_provider { 19 namespace file_system_provider {
20 namespace {
21
22 // Size of the stream reader internal buffer. At most this number of bytes will
23 // be read ahead of the requested data.
24 const int kBufferSize = 512 * 1024; // 512KB.
hashimoto 2014/06/05 03:18:36 nit: kBufferSize sounds too general. How about som
mtomasz 2014/06/05 09:22:27 Done.
25
26 } // namespace
19 27
20 BackendDelegate::BackendDelegate() 28 BackendDelegate::BackendDelegate()
21 : async_file_util_(new internal::ProviderAsyncFileUtil) {} 29 : async_file_util_(new internal::ProviderAsyncFileUtil) {}
22 30
23 BackendDelegate::~BackendDelegate() {} 31 BackendDelegate::~BackendDelegate() {}
24 32
25 fileapi::AsyncFileUtil* BackendDelegate::GetAsyncFileUtil( 33 fileapi::AsyncFileUtil* BackendDelegate::GetAsyncFileUtil(
26 fileapi::FileSystemType type) { 34 fileapi::FileSystemType type) {
27 DCHECK_CURRENTLY_ON(BrowserThread::IO); 35 DCHECK_CURRENTLY_ON(BrowserThread::IO);
28 DCHECK_EQ(fileapi::kFileSystemTypeProvided, type); 36 DCHECK_EQ(fileapi::kFileSystemTypeProvided, type);
29 return async_file_util_.get(); 37 return async_file_util_.get();
30 } 38 }
31 39
32 scoped_ptr<webkit_blob::FileStreamReader> 40 scoped_ptr<webkit_blob::FileStreamReader>
33 BackendDelegate::CreateFileStreamReader( 41 BackendDelegate::CreateFileStreamReader(
34 const fileapi::FileSystemURL& url, 42 const fileapi::FileSystemURL& url,
35 int64 offset, 43 int64 offset,
36 const base::Time& expected_modification_time, 44 const base::Time& expected_modification_time,
37 fileapi::FileSystemContext* context) { 45 fileapi::FileSystemContext* context) {
38 DCHECK_CURRENTLY_ON(BrowserThread::IO); 46 DCHECK_CURRENTLY_ON(BrowserThread::IO);
39 DCHECK_EQ(fileapi::kFileSystemTypeProvided, url.type()); 47 DCHECK_EQ(fileapi::kFileSystemTypeProvided, url.type());
40 48
41 return scoped_ptr<webkit_blob::FileStreamReader>( 49 return scoped_ptr<webkit_blob::FileStreamReader>(
42 new FileStreamReader(context, url, offset, expected_modification_time)); 50 new BufferingFileStreamReader(
51 scoped_ptr<webkit_blob::FileStreamReader>(new FileStreamReader(
52 context, url, offset, expected_modification_time)),
53 kBufferSize));
43 } 54 }
44 55
45 scoped_ptr<fileapi::FileStreamWriter> BackendDelegate::CreateFileStreamWriter( 56 scoped_ptr<fileapi::FileStreamWriter> BackendDelegate::CreateFileStreamWriter(
46 const fileapi::FileSystemURL& url, 57 const fileapi::FileSystemURL& url,
47 int64 offset, 58 int64 offset,
48 fileapi::FileSystemContext* context) { 59 fileapi::FileSystemContext* context) {
49 DCHECK_CURRENTLY_ON(BrowserThread::IO); 60 DCHECK_CURRENTLY_ON(BrowserThread::IO);
50 DCHECK_EQ(fileapi::kFileSystemTypeProvided, url.type()); 61 DCHECK_EQ(fileapi::kFileSystemTypeProvided, url.type());
51 NOTIMPLEMENTED(); 62 NOTIMPLEMENTED();
52 return scoped_ptr<fileapi::FileStreamWriter>(); 63 return scoped_ptr<fileapi::FileStreamWriter>();
53 } 64 }
54 65
55 } // namespace file_system_provider 66 } // namespace file_system_provider
56 } // namespace chromeos 67 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698