| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/common/media_galleries/picasa_types.h" |
| |
| #include "base/logging.h" |
| #include "chrome/common/media_galleries/pmp_constants.h" |
| |
| namespace picasa { |
| |
| namespace { |
| |
| base::File OpenFile(const base::FilePath& directory_path, |
| const std::string& suffix) { |
| base::FilePath path = directory_path.Append(base::FilePath::FromUTF8Unsafe( |
| std::string(kPicasaAlbumTableName) + "_" + suffix)); |
| return base::File(path, base::File::FLAG_OPEN | base::File::FLAG_READ); |
| } |
| |
| base::File OpenColumnFile(const base::FilePath& directory_path, |
| const std::string& column_name) { |
| return OpenFile(directory_path, column_name + "." + kPmpExtension); |
| } |
| |
| } // namespace |
| |
| const char kPicasaDatabaseDirName[] = "db3"; |
| const char kPicasaTempDirName[] = "tmp"; |
| |
| const char kPicasaAlbumTableName[] = "albumdata"; |
| const char kAlbumTokenPrefix[] = "]album:"; |
| const char kPicasaINIFilename[] = ".picasa.ini"; |
| |
| const uint32 kAlbumCategoryAlbum = 0; |
| const uint32 kAlbumCategoryFolder = 2; |
| const uint32 kAlbumCategoryInvalid = 0xffff; // Sentinel value. |
| |
| AlbumInfo::AlbumInfo() { |
| } |
| |
| AlbumInfo::AlbumInfo(const std::string& name, const base::Time& timestamp, |
| const std::string& uid, const base::FilePath& path) |
| : name(name), |
| timestamp(timestamp), |
| uid(uid), |
| path(path) { |
| } |
| |
| AlbumInfo::~AlbumInfo() { |
| } |
| |
| AlbumTableFiles::AlbumTableFiles() { |
| } |
| |
| AlbumTableFiles::AlbumTableFiles(const base::FilePath& directory_path) |
| : indicator_file(OpenFile(directory_path, "0")), |
| category_file(OpenColumnFile(directory_path, "category")), |
| date_file(OpenColumnFile(directory_path, "date")), |
| filename_file(OpenColumnFile(directory_path, "filename")), |
| name_file(OpenColumnFile(directory_path, "name")), |
| token_file(OpenColumnFile(directory_path, "token")), |
| uid_file(OpenColumnFile(directory_path, "uid")) { |
| } |
| |
| AlbumTableFiles::~AlbumTableFiles() { |
| } |
| |
| AlbumTableFiles::AlbumTableFiles(RValue other) |
| : indicator_file(other.object->indicator_file.Pass()), |
| category_file(other.object->category_file.Pass()), |
| date_file(other.object->date_file.Pass()), |
| filename_file(other.object->filename_file.Pass()), |
| name_file(other.object->name_file.Pass()), |
| token_file(other.object->token_file.Pass()), |
| uid_file(other.object->uid_file.Pass()) { |
| } |
| |
| AlbumTableFiles& AlbumTableFiles::operator=(RValue other) { |
| if (this != other.object) { |
| indicator_file = other.object->indicator_file.Pass(); |
| category_file = other.object->category_file.Pass(); |
| date_file = other.object->date_file.Pass(); |
| filename_file = other.object->filename_file.Pass(); |
| name_file = other.object->name_file.Pass(); |
| token_file = other.object->token_file.Pass(); |
| uid_file = other.object->uid_file.Pass(); |
| } |
| return *this; |
| } |
| |
| AlbumTableFilesForTransit::AlbumTableFilesForTransit() |
| : indicator_file(IPC::InvalidPlatformFileForTransit()), |
| category_file(IPC::InvalidPlatformFileForTransit()), |
| date_file(IPC::InvalidPlatformFileForTransit()), |
| filename_file(IPC::InvalidPlatformFileForTransit()), |
| name_file(IPC::InvalidPlatformFileForTransit()), |
| token_file(IPC::InvalidPlatformFileForTransit()), |
| uid_file(IPC::InvalidPlatformFileForTransit()) { |
| } |
| |
| } // namespace picasa |