| Index: webkit/dom_storage/dom_storage_host.h
|
| ===================================================================
|
| --- webkit/dom_storage/dom_storage_host.h (revision 0)
|
| +++ webkit/dom_storage/dom_storage_host.h (revision 0)
|
| @@ -0,0 +1,68 @@
|
| +// Copyright (c) 2012 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.
|
| +
|
| +#ifndef WEBKIT_DOM_STORAGE_DOM_STORAGE_HOST_H_
|
| +#define WEBKIT_DOM_STORAGE_DOM_STORAGE_HOST_H_
|
| +#pragma once
|
| +
|
| +#include <map>
|
| +
|
| +#include "base/memory/ref_counted.h"
|
| +#include "base/nullable_string16.h"
|
| +#include "base/string16.h"
|
| +
|
| +class GURL;
|
| +
|
| +namespace dom_storage {
|
| +
|
| +class DomStorageContext;
|
| +class DomStorageHost;
|
| +class DomStorageNamespace;
|
| +class DomStorageArea;
|
| +
|
| +// One instance is allocated in the main process for each client process.
|
| +// Used by DomStorageMessageFilter in Chrome and by SimpleDomStorage in DRT.
|
| +// This class is single threaded, and performs blocking file reads/writes,
|
| +// so it shouldn't be used on chrome's IO thread.
|
| +// See class comments for DomStorageContext for a larger overview.
|
| +class DomStorageHost {
|
| + public:
|
| + explicit DomStorageHost(DomStorageContext* context);
|
| + ~DomStorageHost();
|
| +
|
| + int OpenStorageArea(int namespace_id, const GURL& origin);
|
| + void CloseStorageArea(int connection_id);
|
| +
|
| + unsigned GetAreaLength(int connection_id);
|
| + NullableString16 GetAreaKey(int connection_id, unsigned index);
|
| + NullableString16 GetAreaItem(int connection_id, const string16& key);
|
| + bool SetAreaItem(int connection_id, const string16& key,
|
| + const string16& value, const GURL& page_url,
|
| + NullableString16* old_value);
|
| + bool RemoveAreaItem(int connection_id, const string16& key,
|
| + const GURL& page_url,
|
| + string16* old_value);
|
| + bool ClearArea(int connection_id, const GURL& page_url);
|
| +
|
| + private:
|
| + // Struct to hold references needed for areas that are open
|
| + // within our associated client process.
|
| + struct NamespaceAndArea {
|
| + scoped_refptr<DomStorageNamespace> namespace_;
|
| + scoped_refptr<DomStorageArea> area_;
|
| + NamespaceAndArea();
|
| + ~NamespaceAndArea();
|
| + };
|
| + typedef std::map<int, NamespaceAndArea > AreaMap;
|
| +
|
| + DomStorageArea* GetOpenArea(int connection_id);
|
| +
|
| + int last_connection_id_;
|
| + scoped_refptr<DomStorageContext> context_;
|
| + AreaMap connections_;
|
| +};
|
| +
|
| +} // namespace dom_storage
|
| +
|
| +#endif // WEBKIT_DOM_STORAGE_DOM_STORAGE_HOST_H_
|
|
|
| Property changes on: webkit\dom_storage\dom_storage_host.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|