| 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 #include "services/catalog/instance.h" | 5 #include "services/catalog/instance.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "services/catalog/entry.h" | 8 #include "services/catalog/entry.h" |
| 9 #include "services/catalog/manifest_provider.h" | 9 #include "services/catalog/manifest_provider.h" |
| 10 #include "services/catalog/reader.h" | 10 #include "services/catalog/reader.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 void Instance::ResolveMojoName(const std::string& mojo_name, | 61 void Instance::ResolveMojoName(const std::string& mojo_name, |
| 62 const ResolveMojoNameCallback& callback) { | 62 const ResolveMojoNameCallback& callback) { |
| 63 DCHECK(system_cache_); | 63 DCHECK(system_cache_); |
| 64 | 64 |
| 65 std::string type = service_manager::GetNameType(mojo_name); | 65 std::string type = service_manager::GetNameType(mojo_name); |
| 66 if (type != service_manager::kNameType_Service && | 66 if (type != service_manager::kNameType_Service && |
| 67 type != service_manager::kNameType_Exe) { | 67 type != service_manager::kNameType_Exe) { |
| 68 std::unique_ptr<Entry> entry(new Entry(mojo_name)); | 68 std::unique_ptr<Entry> entry(new Entry(mojo_name)); |
| 69 service_manager::mojom::ResolveResultPtr result = | 69 service_manager::mojom::ResolveResultPtr result = |
| 70 service_manager::mojom::ResolveResult::From(*entry); | 70 service_manager::mojom::ResolveResult::From(*entry); |
| 71 result->connection_spec = base::nullopt; | |
| 72 callback.Run(std::move(result)); | 71 callback.Run(std::move(result)); |
| 73 return; | 72 return; |
| 74 } | 73 } |
| 75 | 74 |
| 76 // TODO(beng): per-user catalogs. | 75 // TODO(beng): per-user catalogs. |
| 77 auto entry = system_cache_->find(mojo_name); | 76 auto entry = system_cache_->find(mojo_name); |
| 78 if (entry != system_cache_->end()) { | 77 if (entry != system_cache_->end()) { |
| 79 callback.Run(service_manager::mojom::ResolveResult::From(*entry->second)); | 78 callback.Run(service_manager::mojom::ResolveResult::From(*entry->second)); |
| 80 return; | 79 return; |
| 81 } | 80 } |
| (...skipping 25 matching lines...) Expand all Loading... |
| 107 if (system_cache_->find(name) != system_cache_->end()) | 106 if (system_cache_->find(name) != system_cache_->end()) |
| 108 entry = (*system_cache_)[name].get(); | 107 entry = (*system_cache_)[name].get(); |
| 109 else | 108 else |
| 110 continue; | 109 continue; |
| 111 AddEntry(*entry, &entries); | 110 AddEntry(*entry, &entries); |
| 112 } | 111 } |
| 113 } | 112 } |
| 114 callback.Run(std::move(entries)); | 113 callback.Run(std::move(entries)); |
| 115 } | 114 } |
| 116 | 115 |
| 117 void Instance::GetEntriesProvidingClass( | 116 void Instance::GetEntriesProvidingCapability( |
| 118 const std::string& clazz, | 117 const std::string& capability, |
| 119 const GetEntriesProvidingClassCallback& callback) { | 118 const GetEntriesProvidingCapabilityCallback& callback) { |
| 120 std::vector<mojom::EntryPtr> entries; | 119 std::vector<mojom::EntryPtr> entries; |
| 121 for (const auto& entry : *system_cache_) | 120 for (const auto& entry : *system_cache_) |
| 122 if (entry.second->ProvidesClass(clazz)) | 121 if (entry.second->ProvidesCapability(capability)) |
| 123 entries.push_back(mojom::Entry::From(*entry.second)); | 122 entries.push_back(mojom::Entry::From(*entry.second)); |
| 124 callback.Run(std::move(entries)); | 123 callback.Run(std::move(entries)); |
| 125 } | 124 } |
| 126 | 125 |
| 127 void Instance::GetEntriesConsumingMIMEType( | 126 void Instance::GetEntriesConsumingMIMEType( |
| 128 const std::string& mime_type, | 127 const std::string& mime_type, |
| 129 const GetEntriesConsumingMIMETypeCallback& callback) { | 128 const GetEntriesConsumingMIMETypeCallback& callback) { |
| 130 // TODO(beng): implement. | 129 // TODO(beng): implement. |
| 131 } | 130 } |
| 132 | 131 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 void Instance::OnReadManifest(base::WeakPtr<Instance> instance, | 170 void Instance::OnReadManifest(base::WeakPtr<Instance> instance, |
| 172 const std::string& mojo_name, | 171 const std::string& mojo_name, |
| 173 const ResolveMojoNameCallback& callback, | 172 const ResolveMojoNameCallback& callback, |
| 174 service_manager::mojom::ResolveResultPtr result) { | 173 service_manager::mojom::ResolveResultPtr result) { |
| 175 callback.Run(std::move(result)); | 174 callback.Run(std::move(result)); |
| 176 if (instance) | 175 if (instance) |
| 177 instance->SerializeCatalog(); | 176 instance->SerializeCatalog(); |
| 178 } | 177 } |
| 179 | 178 |
| 180 } // namespace catalog | 179 } // namespace catalog |
| OLD | NEW |