blob: 69d7c065bddfe352ffac5ecf11d2dfa5fb34e5d5 [file] [log] [blame]
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +01001// 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#ifndef CHROME_BROWSER_MEDIA_GALLERIES_FILEAPI_PICASA_PICASA_FILE_UTIL_H_
6#define CHROME_BROWSER_MEDIA_GALLERIES_FILEAPI_PICASA_PICASA_FILE_UTIL_H_
7
Ben Murdocheb525c52013-07-10 11:40:50 +01008#include "base/memory/scoped_ptr.h"
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +01009#include "base/memory/weak_ptr.h"
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010010#include "chrome/browser/media_galleries/fileapi/native_media_file_util.h"
11
12namespace picasa {
13
14class PicasaDataProvider;
15
16extern const char kPicasaDirAlbums[];
17extern const char kPicasaDirFolders[];
18
19class PicasaFileUtil : public chrome::NativeMediaFileUtil {
20 public:
Ben Murdochbb1529c2013-08-08 10:24:53 +010021 explicit PicasaFileUtil(chrome::MediaPathFilter* media_path_filter);
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010022 virtual ~PicasaFileUtil();
23
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +010024 protected:
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +010025 // NativeMediaFileUtil overrides.
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +010026 virtual void GetFileInfoOnTaskRunnerThread(
Ben Murdocheb525c52013-07-10 11:40:50 +010027 scoped_ptr<fileapi::FileSystemOperationContext> context,
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +010028 const fileapi::FileSystemURL& url,
29 const GetFileInfoCallback& callback) OVERRIDE;
30 virtual void ReadDirectoryOnTaskRunnerThread(
Ben Murdocheb525c52013-07-10 11:40:50 +010031 scoped_ptr<fileapi::FileSystemOperationContext> context,
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +010032 const fileapi::FileSystemURL& url,
33 const ReadDirectoryCallback& callback) OVERRIDE;
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +010034 virtual base::PlatformFileError GetFileInfoSync(
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010035 fileapi::FileSystemOperationContext* context,
36 const fileapi::FileSystemURL& url,
37 base::PlatformFileInfo* file_info,
38 base::FilePath* platform_path) OVERRIDE;
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +010039 virtual base::PlatformFileError ReadDirectorySync(
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010040 fileapi::FileSystemOperationContext* context,
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +010041 const fileapi::FileSystemURL& url,
42 EntryList* file_list) OVERRIDE;
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010043 virtual base::PlatformFileError GetLocalFilePath(
44 fileapi::FileSystemOperationContext* context,
45 const fileapi::FileSystemURL& url,
46 base::FilePath* local_file_path) OVERRIDE;
47
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +010048 private:
49 void GetFileInfoWithFreshDataProvider(
Ben Murdocheb525c52013-07-10 11:40:50 +010050 scoped_ptr<fileapi::FileSystemOperationContext> context,
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +010051 const fileapi::FileSystemURL& url,
52 const GetFileInfoCallback& callback);
53 void ReadDirectoryWithFreshDataProvider(
Ben Murdocheb525c52013-07-10 11:40:50 +010054 scoped_ptr<fileapi::FileSystemOperationContext> context,
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +010055 const fileapi::FileSystemURL& url,
56 const ReadDirectoryCallback& callback);
57
58 virtual PicasaDataProvider* GetDataProvider();
59
60 base::WeakPtrFactory<PicasaFileUtil> weak_factory_;
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010061
62 DISALLOW_COPY_AND_ASSIGN(PicasaFileUtil);
63};
64
65} // namespace picasa
66
67#endif // CHROME_BROWSER_MEDIA_GALLERIES_FILEAPI_PICASA_PICASA_FILE_UTIL_H_