Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / common / media_galleries / picasa_types.cc
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 "chrome/common/media_galleries/picasa_types.h"
6
7 #include "base/logging.h"
8 #include "chrome/common/media_galleries/pmp_constants.h"
9
10 namespace picasa {
11
12 namespace {
13
14 base::File OpenFile(const base::FilePath& directory_path,
15                     const std::string& suffix) {
16   base::FilePath path = directory_path.Append(base::FilePath::FromUTF8Unsafe(
17       std::string(kPicasaAlbumTableName) + "_" + suffix));
18   return base::File(path, base::File::FLAG_OPEN | base::File::FLAG_READ);
19 }
20
21 base::File OpenColumnFile(const base::FilePath& directory_path,
22                           const std::string& column_name) {
23   return OpenFile(directory_path, column_name + "." + kPmpExtension);
24 }
25
26 }  // namespace
27
28 const char kPicasaDatabaseDirName[] = "db3";
29 const char kPicasaTempDirName[] = "tmp";
30
31 const char kPicasaAlbumTableName[] = "albumdata";
32 const char kAlbumTokenPrefix[] = "]album:";
33 const char kPicasaINIFilename[] = ".picasa.ini";
34
35 const uint32 kAlbumCategoryAlbum = 0;
36 const uint32 kAlbumCategoryFolder = 2;
37 const uint32 kAlbumCategoryInvalid = 0xffff;  // Sentinel value.
38
39 AlbumInfo::AlbumInfo() {
40 }
41
42 AlbumInfo::AlbumInfo(const std::string& name, const base::Time& timestamp,
43                      const std::string& uid, const base::FilePath& path)
44     : name(name),
45       timestamp(timestamp),
46       uid(uid),
47       path(path) {
48 }
49
50 AlbumInfo::~AlbumInfo() {
51 }
52
53 AlbumTableFiles::AlbumTableFiles() {
54 }
55
56 AlbumTableFiles::AlbumTableFiles(const base::FilePath& directory_path)
57     : indicator_file(OpenFile(directory_path, "0")),
58       category_file(OpenColumnFile(directory_path, "category")),
59       date_file(OpenColumnFile(directory_path, "date")),
60       filename_file(OpenColumnFile(directory_path, "filename")),
61       name_file(OpenColumnFile(directory_path, "name")),
62       token_file(OpenColumnFile(directory_path, "token")),
63       uid_file(OpenColumnFile(directory_path, "uid")) {
64 }
65
66 AlbumTableFiles::~AlbumTableFiles() {
67 }
68
69 AlbumTableFiles::AlbumTableFiles(RValue other)
70     : indicator_file(other.object->indicator_file.Pass()),
71       category_file(other.object->category_file.Pass()),
72       date_file(other.object->date_file.Pass()),
73       filename_file(other.object->filename_file.Pass()),
74       name_file(other.object->name_file.Pass()),
75       token_file(other.object->token_file.Pass()),
76       uid_file(other.object->uid_file.Pass()) {
77 }
78
79 AlbumTableFiles& AlbumTableFiles::operator=(RValue other) {
80   if (this != other.object) {
81     indicator_file = other.object->indicator_file.Pass();
82     category_file = other.object->category_file.Pass();
83     date_file = other.object->date_file.Pass();
84     filename_file = other.object->filename_file.Pass();
85     name_file = other.object->name_file.Pass();
86     token_file = other.object->token_file.Pass();
87     uid_file = other.object->uid_file.Pass();
88   }
89   return *this;
90 }
91
92 AlbumTableFilesForTransit::AlbumTableFilesForTransit()
93     : indicator_file(IPC::InvalidPlatformFileForTransit()),
94       category_file(IPC::InvalidPlatformFileForTransit()),
95       date_file(IPC::InvalidPlatformFileForTransit()),
96       filename_file(IPC::InvalidPlatformFileForTransit()),
97       name_file(IPC::InvalidPlatformFileForTransit()),
98       token_file(IPC::InvalidPlatformFileForTransit()),
99       uid_file(IPC::InvalidPlatformFileForTransit()) {
100 }
101
102 }  // namespace picasa