123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// found in the LICENSE file. 423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "content/browser/indexed_db/indexed_db_blob_info.h" 623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "base/bind.h" 823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "base/logging.h" 923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "content/browser/indexed_db/indexed_db_leveldb_coding.h" 1023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace content { 1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)IndexedDBBlobInfo::IndexedDBBlobInfo() 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu : is_file_(false), size_(-1), key_(DatabaseMetaDataKey::kInvalidBlobKey) { 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)IndexedDBBlobInfo::~IndexedDBBlobInfo() {} 1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)IndexedDBBlobInfo::IndexedDBBlobInfo(const std::string& uuid, 2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const base::string16& type, 2123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) int64 size) 2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) : is_file_(false), 2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) uuid_(uuid), 2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) type_(type), 2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) size_(size), 265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu key_(DatabaseMetaDataKey::kInvalidBlobKey) { 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 2823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)IndexedDBBlobInfo::IndexedDBBlobInfo(const base::string16& type, 3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) int64 size, 3123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) int64 key) 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu : is_file_(false), type_(type), size_(size), key_(key) { 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 3423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuIndexedDBBlobInfo::IndexedDBBlobInfo(const std::string& uuid, 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::FilePath& file_path, 3723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const base::string16& file_name, 3823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const base::string16& type) 3923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) : is_file_(true), 405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu uuid_(uuid), 4123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) type_(type), 4223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) size_(-1), 4323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) file_name_(file_name), 4423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) file_path_(file_path), 455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu key_(DatabaseMetaDataKey::kInvalidBlobKey) { 465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 4723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 4823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)IndexedDBBlobInfo::IndexedDBBlobInfo(int64 key, 4923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const base::string16& type, 5023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const base::string16& file_name) 515c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu : is_file_(true), type_(type), size_(-1), file_name_(file_name), key_(key) { 525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 5323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)void IndexedDBBlobInfo::set_size(int64 size) { 5523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) DCHECK_EQ(-1, size_); 5623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) size_ = size; 5723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 5823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)void IndexedDBBlobInfo::set_uuid(const std::string& uuid) { 6023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) DCHECK(uuid_.empty()); 6123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) uuid_ = uuid; 6223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) DCHECK(!uuid_.empty()); 6323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 6423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 6523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)void IndexedDBBlobInfo::set_file_path(const base::FilePath& file_path) { 6623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) DCHECK(file_path_.empty()); 6723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) file_path_ = file_path; 6823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 6923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 7023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)void IndexedDBBlobInfo::set_last_modified(const base::Time& time) { 7123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) DCHECK(base::Time().is_null()); 7223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) DCHECK(is_file_); 7323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) last_modified_ = time; 7423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 7523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 7623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)void IndexedDBBlobInfo::set_key(int64 key) { 7723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) DCHECK_EQ(DatabaseMetaDataKey::kInvalidBlobKey, key_); 7823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) key_ = key; 7923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 8023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 8123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)void IndexedDBBlobInfo::set_mark_used_callback( 8223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const base::Closure& mark_used_callback) { 8323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) DCHECK(mark_used_callback_.is_null()); 8423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) mark_used_callback_ = mark_used_callback; 8523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 8623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 8723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)void IndexedDBBlobInfo::set_release_callback( 8823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const ReleaseCallback& release_callback) { 8923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) DCHECK(release_callback_.is_null()); 9023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) release_callback_ = release_callback; 9123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 9223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 9323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} // namespace content 94