Index: services/catalog/instance.cc |
diff --git a/services/catalog/instance.cc b/services/catalog/instance.cc |
index cdcef14427c6d15c64faeae1c2825846c84a3318..65ebc0a9ed9075ba54ed9126cfa08f6666e0c6fc 100644 |
--- a/services/catalog/instance.cc |
+++ b/services/catalog/instance.cc |
@@ -8,7 +8,6 @@ |
#include "services/catalog/entry.h" |
#include "services/catalog/manifest_provider.h" |
#include "services/catalog/reader.h" |
-#include "services/catalog/store.h" |
namespace catalog { |
namespace { |
@@ -22,13 +21,8 @@ void AddEntry(const Entry& entry, std::vector<mojom::EntryPtr>* ary) { |
} // namespace |
-//////////////////////////////////////////////////////////////////////////////// |
-// Instance, public: |
+Instance::Instance(Reader* system_reader) : system_reader_(system_reader) {} |
-Instance::Instance(std::unique_ptr<Store> store, Reader* system_reader) |
- : store_(std::move(store)), |
- system_reader_(system_reader), |
- weak_factory_(this) {} |
Instance::~Instance() {} |
void Instance::BindResolver(service_manager::mojom::ResolverRequest request) { |
@@ -47,18 +41,14 @@ void Instance::BindCatalog(mojom::CatalogRequest request) { |
void Instance::CacheReady(EntryCache* cache) { |
system_cache_ = cache; |
- DeserializeCatalog(); |
for (auto& request : pending_resolver_requests_) |
BindResolver(std::move(request)); |
for (auto& request : pending_catalog_requests_) |
BindCatalog(std::move(request)); |
} |
-//////////////////////////////////////////////////////////////////////////////// |
-// Instance, service_manager::mojom::Resolver: |
- |
-void Instance::ResolveMojoName(const std::string& service_name, |
- const ResolveMojoNameCallback& callback) { |
+void Instance::ResolveServiceName(const std::string& service_name, |
+ const ResolveServiceNameCallback& callback) { |
DCHECK(system_cache_); |
// TODO(beng): per-user catalogs. |
@@ -68,17 +58,9 @@ void Instance::ResolveMojoName(const std::string& service_name, |
return; |
} |
- // Manifests for mojo: names should always be in the catalog by this point. |
- // DCHECK(type == service_manager::kNameType_Exe); |
- system_reader_->CreateEntryForName( |
- service_name, system_cache_, |
- base::Bind(&Instance::OnReadManifest, weak_factory_.GetWeakPtr(), |
- service_name, callback)); |
+ system_reader_->CreateEntryForName(service_name, system_cache_, callback); |
} |
-//////////////////////////////////////////////////////////////////////////////// |
-// Instance, mojom::Catalog: |
- |
void Instance::GetEntries(const base::Optional<std::vector<std::string>>& names, |
const GetEntriesCallback& callback) { |
DCHECK(system_cache_); |
@@ -124,45 +106,4 @@ void Instance::GetEntriesSupportingScheme( |
// TODO(beng): implement. |
} |
-//////////////////////////////////////////////////////////////////////////////// |
-// Instance, private: |
- |
-void Instance::DeserializeCatalog() { |
- DCHECK(system_cache_); |
- if (!store_) |
- return; |
- const base::ListValue* catalog = store_->GetStore(); |
- CHECK(catalog); |
- // TODO(sky): make this handle aliases. |
- // TODO(beng): implement this properly! |
- for (const auto& v : *catalog) { |
- const base::DictionaryValue* dictionary = nullptr; |
- CHECK(v->GetAsDictionary(&dictionary)); |
- std::unique_ptr<Entry> entry = Entry::Deserialize(*dictionary); |
- // TODO(beng): user catalog. |
- if (entry) |
- (*system_cache_)[entry->name()] = std::move(entry); |
- } |
-} |
- |
-void Instance::SerializeCatalog() { |
- DCHECK(system_cache_); |
- std::unique_ptr<base::ListValue> catalog(new base::ListValue); |
- // TODO(beng): user catalog. |
- for (const auto& entry : *system_cache_) |
- catalog->Append(entry.second->Serialize()); |
- if (store_) |
- store_->UpdateStore(std::move(catalog)); |
-} |
- |
-// static |
-void Instance::OnReadManifest(base::WeakPtr<Instance> instance, |
- const std::string& service_name, |
- const ResolveMojoNameCallback& callback, |
- service_manager::mojom::ResolveResultPtr result) { |
- callback.Run(std::move(result)); |
- if (instance) |
- instance->SerializeCatalog(); |
-} |
- |
} // namespace catalog |