15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file.
47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef CHROME_BROWSER_CHROMEOS_DRIVE_FILEAPI_FILE_SYSTEM_BACKEND_DELEGATE_H_
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define CHROME_BROWSER_CHROMEOS_DRIVE_FILEAPI_FILE_SYSTEM_BACKEND_DELEGATE_H_
77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/basictypes.h"
97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/memory/scoped_ptr.h"
107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/chromeos/fileapi/file_system_backend_delegate.h"
117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace storage {
137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass AsyncFileUtil;
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass FileSystemContext;
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass FileStreamReader;
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass FileSystemURL;
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass FileStreamWriter;
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass WatcherManager;
1903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}  // namespace storage
207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochnamespace drive {
227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Delegate implementation of the some methods in chromeos::FileSystemBackend
247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// for Drive file system.
257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass FileSystemBackendDelegate : public chromeos::FileSystemBackendDelegate {
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch public:
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  FileSystemBackendDelegate();
287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  virtual ~FileSystemBackendDelegate();
297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  // FileSystemBackend::Delegate overrides.
3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  virtual storage::AsyncFileUtil* GetAsyncFileUtil(
3203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)      storage::FileSystemType type) OVERRIDE;
3303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  virtual scoped_ptr<storage::FileStreamReader> CreateFileStreamReader(
3403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)      const storage::FileSystemURL& url,
357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      int64 offset,
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      int64 max_bytes_to_read,
377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      const base::Time& expected_modification_time,
3803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)      storage::FileSystemContext* context) OVERRIDE;
3903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  virtual scoped_ptr<storage::FileStreamWriter> CreateFileStreamWriter(
4003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)      const storage::FileSystemURL& url,
417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      int64 offset,
4203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)      storage::FileSystemContext* context) OVERRIDE;
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual storage::WatcherManager* GetWatcherManager(
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const storage::FileSystemURL& url) OVERRIDE;
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual void GetRedirectURLForContents(
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const storage::FileSystemURL& url,
471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const storage::URLCallback& callback) OVERRIDE;
487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch private:
5003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  scoped_ptr<storage::AsyncFileUtil> async_file_util_;
517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(FileSystemBackendDelegate);
537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch};
547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}  // namespace drive
567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif  // CHROME_BROWSER_CHROMEOS_DRIVE_FILEAPI_FILE_SYSTEM_BACKEND_DELEGATE_H_
58