Home | History | Annotate | Download | only in fileapi
      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
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate.h"
      6 
      7 #include "base/memory/scoped_ptr.h"
      8 #include "chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reader.h"
      9 #include "chrome/browser/chromeos/file_system_provider/fileapi/provider_async_file_util.h"
     10 #include "content/public/browser/browser_thread.h"
     11 #include "webkit/browser/blob/file_stream_reader.h"
     12 #include "webkit/browser/fileapi/file_stream_writer.h"
     13 #include "webkit/browser/fileapi/file_system_url.h"
     14 
     15 using content::BrowserThread;
     16 
     17 namespace chromeos {
     18 namespace file_system_provider {
     19 
     20 BackendDelegate::BackendDelegate()
     21     : async_file_util_(new internal::ProviderAsyncFileUtil) {}
     22 
     23 BackendDelegate::~BackendDelegate() {}
     24 
     25 fileapi::AsyncFileUtil* BackendDelegate::GetAsyncFileUtil(
     26     fileapi::FileSystemType type) {
     27   DCHECK_CURRENTLY_ON(BrowserThread::IO);
     28   DCHECK_EQ(fileapi::kFileSystemTypeProvided, type);
     29   return async_file_util_.get();
     30 }
     31 
     32 scoped_ptr<webkit_blob::FileStreamReader>
     33 BackendDelegate::CreateFileStreamReader(
     34     const fileapi::FileSystemURL& url,
     35     int64 offset,
     36     const base::Time& expected_modification_time,
     37     fileapi::FileSystemContext* context) {
     38   DCHECK_CURRENTLY_ON(BrowserThread::IO);
     39   DCHECK_EQ(fileapi::kFileSystemTypeProvided, url.type());
     40 
     41   return scoped_ptr<webkit_blob::FileStreamReader>(
     42       new FileStreamReader(context, url, offset, expected_modification_time));
     43 }
     44 
     45 scoped_ptr<fileapi::FileStreamWriter> BackendDelegate::CreateFileStreamWriter(
     46     const fileapi::FileSystemURL& url,
     47     int64 offset,
     48     fileapi::FileSystemContext* context) {
     49   DCHECK_CURRENTLY_ON(BrowserThread::IO);
     50   DCHECK_EQ(fileapi::kFileSystemTypeProvided, url.type());
     51   NOTIMPLEMENTED();
     52   return scoped_ptr<fileapi::FileStreamWriter>();
     53 }
     54 
     55 }  // namespace file_system_provider
     56 }  // namespace chromeos
     57