Index: mojo/services/catalog/catalog.h |
diff --git a/mojo/services/catalog/catalog.h b/mojo/services/catalog/catalog.h |
index 8d59b45a2caac240ef87726e317a6ce2b2112bf2..d2dc7bd9e077f71072ddbda802c8c27622a2fe88 100644 |
--- a/mojo/services/catalog/catalog.h |
+++ b/mojo/services/catalog/catalog.h |
@@ -14,6 +14,7 @@ |
#include "mojo/services/catalog/public/interfaces/catalog.mojom.h" |
#include "mojo/services/catalog/public/interfaces/resolver.mojom.h" |
#include "mojo/services/catalog/store.h" |
+#include "mojo/services/catalog/types.h" |
#include "mojo/shell/public/cpp/interface_factory.h" |
#include "mojo/shell/public/interfaces/shell_resolver.mojom.h" |
@@ -32,7 +33,9 @@ class Catalog : public mojom::Resolver, |
public mojo::shell::mojom::ShellResolver, |
public mojom::Catalog { |
public: |
- Catalog(scoped_ptr<Store> store, base::TaskRunner* file_task_runner); |
+ Catalog(scoped_ptr<Store> store, |
+ base::TaskRunner* file_task_runner, |
+ EntryCache* system_catalog); |
~Catalog() override; |
void BindResolver(mojom::ResolverRequest request); |
@@ -76,12 +79,12 @@ class Catalog : public mojom::Resolver, |
// Populate the catalog with data from |entry|, and pass it to the client |
// via callback. |
- void AddEntryToCatalog(scoped_ptr<Entry> entry); |
+ void AddEntryToCatalog(scoped_ptr<Entry> entry, bool is_system_catalog); |
// Directory that contains packages and executables visible to all users. |
base::FilePath system_package_dir_; |
- |
- // TODO(beng): add user package dir. |
+ // Directory that contains packages visible to this Catalog instance's user. |
+ base::FilePath user_package_dir_; |
// User-specific persistent storage of package manifests and other settings. |
scoped_ptr<Store> store_; |
@@ -93,8 +96,11 @@ class Catalog : public mojom::Resolver, |
mojo::BindingSet<mojo::shell::mojom::ShellResolver> shell_resolver_bindings_; |
mojo::BindingSet<mojom::Catalog> catalog_bindings_; |
- // Mojo name -> Entry storage, constructed from Store/package manifests. |
- std::map<std::string, scoped_ptr<Entry>> catalog_; |
+ // The current user's packages, constructed from Store/package manifests. |
+ EntryCache user_catalog_; |
+ // Same as above, but for system-level (visible to all-users) packages and |
+ // executables. |
+ EntryCache* system_catalog_; |
base::WeakPtrFactory<Catalog> weak_factory_; |