OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef MOJO_SERVICES_CATALOG_STORE_H_ | |
6 #define MOJO_SERVICES_CATALOG_STORE_H_ | |
7 | |
8 #include "base/memory/scoped_ptr.h" | |
9 #include "base/values.h" | |
10 | |
11 namespace catalog { | |
12 | |
13 // Implemented by an object that provides storage for the application catalog | |
14 // (e.g. in Chrome, preferences). The Catalog is the canonical owner of the | |
15 // contents of the store, so no one else must modify its contents. | |
16 class Store { | |
17 public: | |
18 // Value is an integer. | |
19 static const char kManifestVersionKey[]; | |
20 // Value is a string. | |
21 static const char kNameKey[]; | |
22 // Value is a string. | |
23 static const char kQualifierKey[]; | |
24 // Value is a string. | |
25 static const char kDisplayNameKey[]; | |
26 // Value is a dictionary. | |
27 static const char kCapabilitiesKey[]; | |
28 // Value is a dictionary. | |
29 static const char kCapabilities_ProvidedKey[]; | |
30 // Value is a dictionary. | |
31 static const char kCapabilities_RequiredKey[]; | |
32 // Value is a list. | |
33 static const char kCapabilities_ClassesKey[]; | |
34 // Value is a list. | |
35 static const char kCapabilities_InterfacesKey[]; | |
36 // Value is a list. | |
37 static const char kApplicationsKey[]; | |
38 | |
39 virtual ~Store() {} | |
40 | |
41 // Called during initialization to construct the Catalog's catalog. | |
42 // Returns a serialized list of the apps. Each entry in the returned list | |
43 // corresponds to an app (as a dictionary). Each dictionary has a name, | |
44 // display name and capabilities. The return value is owned by the caller. | |
45 virtual const base::ListValue* GetStore() = 0; | |
46 | |
47 // Write the catalog to the store. Called when the Catalog learns of a newly | |
48 // encountered application. | |
49 virtual void UpdateStore(scoped_ptr<base::ListValue> store) = 0; | |
50 }; | |
51 | |
52 } // namespace catalog | |
53 | |
54 #endif // MOJO_SERVICES_CATALOG_STORE_H_ | |
OLD | NEW |