| 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 service_manager.mojom; | 5 module service_manager.mojom; |
| 6 | 6 |
| 7 import "mojo/common/file_path.mojom"; | 7 import "mojo/common/file_path.mojom"; |
| 8 import "services/service_manager/public/interfaces/interface_provider_spec.mojom
"; | 8 import "services/service_manager/public/interfaces/interface_provider_spec.mojom
"; |
| 9 | 9 |
| 10 // The result of a Resolve operation via Resolver. | 10 // The result of a Resolve operation via Resolver. |
| 11 struct ResolveResult { | 11 struct ResolveResult { |
| 12 // The mojo: name that was requested to be resolved. | 12 // The name that was requested to be resolved. |
| 13 string name; | 13 string name; |
| 14 | 14 |
| 15 // The mojo: name of the physical package supplying the requested name. This | |
| 16 // could be the same name that was passed, or the name of a package that | |
| 17 // contains it. | |
| 18 string resolved_name; | |
| 19 | |
| 20 // An additional piece of metadata that identifies what instance |name| should | |
| 21 // be run in. It's possible that |name| may provide several services that | |
| 22 // should be run as different instances. | |
| 23 string qualifier; | |
| 24 | |
| 25 // Contains the contents of the interface_provider_specs section in |name|'s | 15 // Contains the contents of the interface_provider_specs section in |name|'s |
| 26 // service manifest. If a manifest could be loaded, this map will contain at | 16 // service manifest. If a manifest could be loaded, this map will contain at |
| 27 // least one key: |kServiceManager_ConnectorSpec| as defined in | 17 // least one key: |kServiceManager_ConnectorSpec| as defined in |
| 28 // interface_provider_spec.mojom. If a manifest could not be loaded, this map | 18 // interface_provider_spec.mojom. If a manifest could not be loaded, this map |
| 29 // will be empty. | 19 // will be empty. |
| 30 map<string, InterfaceProviderSpec> interface_provider_specs; | 20 map<string, InterfaceProviderSpec> interface_provider_specs; |
| 31 | 21 |
| 32 // The set of capabilities of the containing package if any. | |
| 33 InterfaceProviderSpec? package_spec; | |
| 34 | |
| 35 // A path to the package file specified by |name|. | 22 // A path to the package file specified by |name|. |
| 36 mojo.common.mojom.FilePath package_path; | 23 mojo.common.mojom.FilePath package_path; |
| 37 }; | 24 }; |
| 38 | 25 |
| 39 // Implemented exclusively for the Service Manager's use in resolving mojo: | 26 // Implemented exclusively for the Service Manager's use in resolving service |
| 40 // names and reading static manifest information. | 27 // names and reading static manifest information. |
| 41 interface Resolver { | 28 interface Resolver { |
| 42 // Resolves |service_name| and returns a ResolveResult containing metadata | 29 // Resolves |service_name| and returns a ResolveResult containing metadata |
| 43 // from the catalog that the Service Manager uses to run an instance of it. | 30 // from the catalog that the Service Manager uses to run an instance of it. |
| 44 // | 31 // |
| 45 // If no entry for |service_name| is found in the catalog, |result| is null. | 32 // If no entry for |service_name| is found in the catalog, |result| is null. |
| 46 // | 33 // |
| 47 ResolveServiceName(string service_name) => (ResolveResult? result); | 34 // If the service is provided by another service, information about the |
| 35 // parent is given by |parent|; otherwise |parent| is null. |
| 36 ResolveServiceName(string service_name) |
| 37 => (ResolveResult? result, ResolveResult? parent); |
| 48 }; | 38 }; |
| OLD | NEW |