blob: e949f69023c639786407b38b752b8323e2207d0b [file] [log] [blame]
// Copyright 2019 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.
#include <lib/fit/optional.h>
#include <string>
namespace modular {
// Provides an interface to find an agent that can provide a requested service,
// by name.
class AgentServiceIndex {
virtual ~AgentServiceIndex() = default;
// Returns the component URL (handler) of an agent that can provide the
// |service_name|. If not found, the fit::optional has no value.
// |AgentServiceIndex| does not perform any validation that |service_name|
// will be provided to all clients who request it of the returned handler.
virtual fit::optional<std::string> FindAgentForService(
std::string service_name) = 0;
} // namespace modular