OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 module content.mojom; | 5 module content.mojom; |
6 | 6 |
7 import "components/leveldb/public/interfaces/leveldb.mojom"; | 7 import "components/leveldb/public/interfaces/leveldb.mojom"; |
8 | 8 |
9 // Gives information about changes to a LevelDB database. | 9 // Gives information about changes to a LevelDB database. |
10 // The reason this is a parameter to DeleteAll and GetAll below, instead of | |
11 // being specified when opening a LevelDBWrapper, is to avoid the client getting | |
12 // callbacks for changes that have already been applied to its database that | |
13 // it's fetching via GetAll or it's clearing via DeleteAll. | |
14 // In the methods below, |source| is a user-defined string which was passed to | |
15 // the various LevelDBWrapper methods. | |
16 // Note that observer methods are called before the callbacks for the | 10 // Note that observer methods are called before the callbacks for the |
17 // LevelDBWrapper methods are run. | 11 // LevelDBWrapper methods are run. |
18 interface LevelDBObserver { | 12 interface LevelDBObserver { |
| 13 KeyAdded(array<uint8> key, array<uint8> value, string source); |
19 KeyChanged(array<uint8> key, array<uint8> new_value, array<uint8> old_value, | 14 KeyChanged(array<uint8> key, array<uint8> new_value, array<uint8> old_value, |
20 string source); | 15 string source); |
21 KeyDeleted(array<uint8> key, array<uint8> old_value, string source); | 16 KeyDeleted(array<uint8> key, array<uint8> old_value, string source); |
22 AllDeleted(string source); | 17 AllDeleted(string source); |
| 18 |
| 19 // Since the GetAll call is synchronous, observers need this asynchronously |
| 20 // delivered notification to avoid applying changes to the returned array |
| 21 // that it already contains. |
| 22 GetAllComplete(string source); |
23 }; | 23 }; |
24 | 24 |
25 struct KeyValue { | 25 struct KeyValue { |
26 array<uint8> key; | 26 array<uint8> key; |
27 array<uint8> value; | 27 array<uint8> value; |
28 }; | 28 }; |
29 | 29 |
30 // A wrapper around leveldb that supports giving notifications when values | 30 // A wrapper around leveldb that supports giving notifications when values |
31 // change. | 31 // change. |
32 interface LevelDBWrapper { | 32 interface LevelDBWrapper { |
33 // Sets the database entry for |key| to |value|. Returns OK on success. | 33 // Sets the database entry for |key| to |value|. Returns OK on success. |
34 Put(array<uint8> key, array<uint8> value, string source) | 34 Put(array<uint8> key, array<uint8> value, string source) => (bool success); |
35 => (leveldb.DatabaseError status); | |
36 | 35 |
37 // Remove the database entry (if any) for |key|. Returns OK on success, and a | 36 // Remove the database entry (if any) for |key|. Returns OK on success, and a |
38 // non-OK status on error. It is not an error if |key| did not exist in the | 37 // non-OK status on error. It is not an error if |key| did not exist in the |
39 // database. | 38 // database. |
40 Delete(array<uint8> key, string source) => (leveldb.DatabaseError status); | 39 Delete(array<uint8> key, string source) => (bool success); |
41 | 40 |
42 // Removes all the entries. | 41 // Removes all the entries. |
43 DeleteAll(LevelDBObserver observer, string source) | 42 DeleteAll(string source) => (bool success); |
44 => (leveldb.DatabaseError status); | |
45 | 43 |
46 // Returns the value of the |key|. | 44 // Returns the value of the |key|. |
47 Get(array<uint8> key) => (leveldb.DatabaseError status, array<uint8> value); | 45 Get(array<uint8> key) => (bool success, array<uint8> value); |
48 | 46 |
49 // Only used with small databases. Returns all key/value pairs. | 47 // Only used with small databases. Returns all key/value pairs. |
50 [Sync] | 48 [Sync] |
51 GetAll(LevelDBObserver observer) | 49 GetAll(string source) |
52 => (leveldb.DatabaseError status, array<KeyValue> data); | 50 => (leveldb.DatabaseError status, array<KeyValue> data); |
53 }; | 51 }; |
OLD | NEW |