1// Copyright (c) 2012 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 "content/browser/dom_storage/session_storage_namespace_impl.h" 6 7#include "content/browser/dom_storage/dom_storage_context_wrapper.h" 8#include "content/browser/dom_storage/dom_storage_session.h" 9 10namespace content { 11 12SessionStorageNamespaceImpl::SessionStorageNamespaceImpl( 13 DOMStorageContextWrapper* context) 14 : session_(new DOMStorageSession(context->context())) { 15} 16 17SessionStorageNamespaceImpl::SessionStorageNamespaceImpl( 18 DOMStorageContextWrapper* context, int64 namepace_id_to_clone) 19 : session_(DOMStorageSession::CloneFrom(context->context(), 20 namepace_id_to_clone)) { 21} 22 23SessionStorageNamespaceImpl::SessionStorageNamespaceImpl( 24 DOMStorageContextWrapper* context, const std::string& persistent_id) 25 : session_(new DOMStorageSession(context->context(), persistent_id)) { 26} 27 28SessionStorageNamespaceImpl::SessionStorageNamespaceImpl( 29 SessionStorageNamespaceImpl* master_session_storage_namespace) 30 : session_(new DOMStorageSession( 31 master_session_storage_namespace->session_.get())) { 32} 33 34 35int64 SessionStorageNamespaceImpl::id() const { 36 return session_->namespace_id(); 37} 38 39const std::string& SessionStorageNamespaceImpl::persistent_id() const { 40 return session_->persistent_namespace_id(); 41} 42 43void SessionStorageNamespaceImpl::SetShouldPersist(bool should_persist) { 44 session_->SetShouldPersist(should_persist); 45} 46 47bool SessionStorageNamespaceImpl::should_persist() const { 48 return session_->should_persist(); 49} 50 51SessionStorageNamespaceImpl* SessionStorageNamespaceImpl::Clone() { 52 return new SessionStorageNamespaceImpl(session_->Clone()); 53} 54 55bool SessionStorageNamespaceImpl::IsFromContext( 56 DOMStorageContextWrapper* context) { 57 return session_->IsFromContext(context->context()); 58} 59 60SessionStorageNamespaceImpl::SessionStorageNamespaceImpl( 61 DOMStorageSession* clone) 62 : session_(clone) { 63} 64 65SessionStorageNamespaceImpl::~SessionStorageNamespaceImpl() { 66} 67 68void SessionStorageNamespaceImpl::AddTransactionLogProcessId(int process_id) { 69 session_->AddTransactionLogProcessId(process_id); 70} 71 72void SessionStorageNamespaceImpl::RemoveTransactionLogProcessId( 73 int process_id) { 74 session_->RemoveTransactionLogProcessId(process_id); 75} 76 77void SessionStorageNamespaceImpl::Merge( 78 bool actually_merge, 79 int process_id, 80 SessionStorageNamespace* other, 81 const MergeResultCallback& callback) { 82 SessionStorageNamespaceImpl* other_impl = 83 static_cast<SessionStorageNamespaceImpl*>(other); 84 session_->Merge( 85 actually_merge, process_id, other_impl->session_.get(), callback); 86} 87 88bool SessionStorageNamespaceImpl::IsAliasOf(SessionStorageNamespace* other) { 89 return persistent_id() == other->persistent_id(); 90} 91 92SessionStorageNamespace* SessionStorageNamespaceImpl::CreateAlias() { 93 return new SessionStorageNamespaceImpl(this); 94} 95 96} // namespace content 97