blob: 50614cb98cc3433fcfb60c4cb2622f57a1deaafe [file] [log] [blame]
// 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);
};