// Copyright 2014 The Chromium 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.sys;

// An interface through which a client may request services from a host.
// Instances of this interface are created within the context of an
// already-identified client and host pair, so there is no need to explicitly
// identify the client or host in the methods below.
//
// This interface is deprecated.  Services should be published as directory
// entries instead, just like files.
// TODO(ZX-1358): Point to the FIDL interface for file I/O once RIO is migrated.
interface ServiceProvider {
  // Asks the host to provide the service identified by |service_name| through
  // the |channel| endpoint supplied by the caller. If the host is not willing
  // or able to provide the requested service, it should close the |channel|.
  1: ConnectToService(string service_name, handle<channel> channel);
};
