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 // Note that observer methods are called before the callbacks for the | 10 // Note that observer methods are called before the callbacks for the |
11 // LevelDBWrapper methods are run. | 11 // LevelDBWrapper methods are run. |
12 interface LevelDBObserver { | 12 interface LevelDBObserver { |
13 KeyAdded(array<uint8> key, array<uint8> value, string source); | 13 KeyAdded(array<uint8> key, array<uint8> value, string source); |
14 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, |
15 string source); | 15 string source); |
16 KeyDeleted(array<uint8> key, array<uint8> old_value, string source); | 16 KeyDeleted(array<uint8> key, array<uint8> old_value, string source); |
17 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 }; | 18 }; |
24 | 19 |
25 struct KeyValue { | 20 struct KeyValue { |
26 array<uint8> key; | 21 array<uint8> key; |
27 array<uint8> value; | 22 array<uint8> value; |
28 }; | 23 }; |
29 | 24 |
| 25 // Since the GetAll call is synchronous, LevelDBWrapper users need this |
| 26 // asynchronously delivered notification to avoid applying changes to the |
| 27 // returned array that it already contains. This is not sent over the |
| 28 // normal LevelDBObserver interface as there can be many observers and |
| 29 // only the connection that made the GetAll call needs to be notified of |
| 30 // its completion. |
| 31 interface LevelDBWrapperGetAllCallback { |
| 32 Complete(bool success); |
| 33 }; |
| 34 |
30 // A wrapper around leveldb that supports giving notifications when values | 35 // A wrapper around leveldb that supports giving notifications when values |
31 // change. | 36 // change. |
32 interface LevelDBWrapper { | 37 interface LevelDBWrapper { |
33 AddObserver(associated LevelDBObserver observer); | 38 AddObserver(associated LevelDBObserver observer); |
34 | 39 |
35 // Sets the database entry for |key| to |value|. Returns OK on success. | 40 // Sets the database entry for |key| to |value|. Returns OK on success. |
36 Put(array<uint8> key, array<uint8> value, string source) => (bool success); | 41 Put(array<uint8> key, array<uint8> value, string source) => (bool success); |
37 | 42 |
38 // Remove the database entry (if any) for |key|. Returns OK on success, and a | 43 // Remove the database entry (if any) for |key|. Returns OK on success, and a |
39 // non-OK status on error. It is not an error if |key| did not exist in the | 44 // non-OK status on error. It is not an error if |key| did not exist in the |
40 // database. | 45 // database. |
41 Delete(array<uint8> key, string source) => (bool success); | 46 Delete(array<uint8> key, string source) => (bool success); |
42 | 47 |
43 // Removes all the entries. | 48 // Removes all the entries. |
44 DeleteAll(string source) => (bool success); | 49 DeleteAll(string source) => (bool success); |
45 | 50 |
46 // Returns the value of the |key|. | 51 // Returns the value of the |key|. |
47 Get(array<uint8> key) => (bool success, array<uint8> value); | 52 Get(array<uint8> key) => (bool success, array<uint8> value); |
48 | 53 |
49 // Only used with small databases. Returns all key/value pairs. | 54 // Only used with small databases. Returns all key/value pairs. |
50 [Sync] | 55 [Sync] |
51 GetAll(string source) | 56 GetAll(associated LevelDBWrapperGetAllCallback complete_callback) |
52 => (leveldb.mojom.DatabaseError status, array<KeyValue> data); | 57 => (leveldb.mojom.DatabaseError status, array<KeyValue> data); |
53 }; | 58 }; |
OLD | NEW |