| // Copyright 2017 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.modular; |
| |
| // This interface is given to all components in their |ComponentContext|. Any |
| // component can resolve an entity reference into an |Entity|. |
| interface EntityResolver { |
| // Finds and binds |entity_request| to an Entity handle for the Entity |
| // referenced by |entity_reference|. If an error occurs, |entity_request| |
| // will be closed. |
| // |
| // This method is called by any component who wants to use an Entity using an |
| // entity reference. A component has to get an entity reference (directly or |
| // indirectly) from an agent, for example through some fidl interface. The |
| // agent will create an entity reference using EntityReferenceFactory. During |
| // entity resolution, that agent then provides data for the Entity |
| // through an EntityProvider service it exposes. Thus, any Agent that wishes |
| // to use EntityReferenceFactory to dispense entity references through its |
| // agent services MUST also implement the EntityProvider service. |
| 1: ResolveEntity(string entity_reference, request<Entity> entity_request); |
| }; |