Home | History | Annotate | Download | only in dom_storage
      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 #ifndef CONTENT_BROWSER_DOM_STORAGE_SESSION_STORAGE_NAMESPACE_IMPL_H_
      6 #define CONTENT_BROWSER_DOM_STORAGE_SESSION_STORAGE_NAMESPACE_IMPL_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/memory/ref_counted.h"
     10 #include "content/common/content_export.h"
     11 #include "content/public/browser/session_storage_namespace.h"
     12 
     13 namespace content {
     14 
     15 class DOMStorageContextWrapper;
     16 class DOMStorageSession;
     17 
     18 class SessionStorageNamespaceImpl
     19     : NON_EXPORTED_BASE(public SessionStorageNamespace) {
     20  public:
     21   // Constructs a |SessionStorageNamespaceImpl| and allocates new IDs for it.
     22   //
     23   // The CONTENT_EXPORT allows TestRenderViewHost to instantiate these.
     24   CONTENT_EXPORT explicit SessionStorageNamespaceImpl(
     25       DOMStorageContextWrapper* context);
     26 
     27   // Constructs a |SessionStorageNamespaceImpl| by cloning
     28   // |namespace_to_clone|. Allocates new IDs for it.
     29   SessionStorageNamespaceImpl(DOMStorageContextWrapper* context,
     30                               int64 namepace_id_to_clone);
     31 
     32   // Constructs a |SessionStorageNamespaceImpl| and assigns |persistent_id|
     33   // to it. Allocates a new non-persistent ID.
     34   SessionStorageNamespaceImpl(DOMStorageContextWrapper* context,
     35                               const std::string& persistent_id);
     36 
     37   // SessionStorageNamespace implementation.
     38   virtual int64 id() const OVERRIDE;
     39   virtual const std::string& persistent_id() const OVERRIDE;
     40   virtual void SetShouldPersist(bool should_persist) OVERRIDE;
     41   virtual bool should_persist() const OVERRIDE;
     42 
     43   SessionStorageNamespaceImpl* Clone();
     44   bool IsFromContext(DOMStorageContextWrapper* context);
     45 
     46  private:
     47   explicit SessionStorageNamespaceImpl(DOMStorageSession* clone);
     48   virtual ~SessionStorageNamespaceImpl();
     49 
     50   scoped_refptr<DOMStorageSession> session_;
     51 
     52   DISALLOW_COPY_AND_ASSIGN(SessionStorageNamespaceImpl);
     53 };
     54 
     55 }  // namespace content
     56 
     57 #endif  // CONTENT_BROWSER_DOM_STORAGE_SESSION_STORAGE_NAMESPACE_IMPL_H_
     58