Include all dupe types (event when value is zero) in scan stats.
[chromium-blink-merge.git] / net / extras / sqlite / sqlite_persistent_cookie_store.h
blobe29471ae0a23c7add115b6c4cfdca0e3cee48006
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.
5 #ifndef NET_EXTRAS_SQLITE_SQLITE_PERSISTENT_COOKIE_STORE_H_
6 #define NET_EXTRAS_SQLITE_SQLITE_PERSISTENT_COOKIE_STORE_H_
8 #include <list>
9 #include <string>
10 #include <utility>
11 #include <vector>
13 #include "base/callback_forward.h"
14 #include "base/memory/ref_counted.h"
15 #include "net/cookies/cookie_monster.h"
17 class Task;
19 namespace base {
20 class FilePath;
21 class SequencedTaskRunner;
22 } // namespace base
24 namespace net {
25 class CanonicalCookie;
26 class CookieCryptoDelegate;
28 // Implements the PersistentCookieStore interface in terms of a SQLite database.
29 // For documentation about the actual member functions consult the documentation
30 // of the parent class |CookieMonster::PersistentCookieStore|.
31 class SQLitePersistentCookieStore
32 : public CookieMonster::PersistentCookieStore {
33 public:
34 // Contains the origin and a bool indicating whether or not the
35 // origin is secure.
36 typedef std::pair<std::string, bool> CookieOrigin;
38 // All blocking database accesses will be performed on
39 // |background_task_runner|, while |client_task_runner| is used to invoke
40 // callbacks.
41 SQLitePersistentCookieStore(
42 const base::FilePath& path,
43 const scoped_refptr<base::SequencedTaskRunner>& client_task_runner,
44 const scoped_refptr<base::SequencedTaskRunner>& background_task_runner,
45 bool restore_old_session_cookies,
46 CookieCryptoDelegate* crypto_delegate);
48 // Deletes the cookies whose origins match those given in |cookies|.
49 void DeleteAllInList(const std::list<CookieOrigin>& cookies);
51 // CookieMonster::PersistentCookieStore:
52 void Load(const LoadedCallback& loaded_callback) override;
53 void LoadCookiesForKey(const std::string& key,
54 const LoadedCallback& callback) override;
55 void AddCookie(const CanonicalCookie& cc) override;
56 void UpdateCookieAccessTime(const CanonicalCookie& cc) override;
57 void DeleteCookie(const CanonicalCookie& cc) override;
58 void SetForceKeepSessionState() override;
59 void Flush(const base::Closure& callback) override;
61 private:
62 ~SQLitePersistentCookieStore() override;
64 class Backend;
66 scoped_refptr<Backend> backend_;
68 DISALLOW_COPY_AND_ASSIGN(SQLitePersistentCookieStore);
71 } // namespace net
73 #endif // NET_EXTRAS_SQLITE_SQLITE_PERSISTENT_COOKIE_STORE_H_