// 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.

module mojo;

import "mojo/public/interfaces/application/service_provider.mojom";

// Applications vend Services through the ServiceProvider interface. Services
// implement Interfaces.
interface Application {
  // Initialize is guaranteed to be called before any AcceptConnection calls.
  Initialize(array<string>? args);

  // Called in response to a call to mojo.Shell.ConnectToApplication().
  // The |services| and |exposed_services| parameters are the same as those on
  // mojo.Shell.ConnectToApplication().
  // |services| will be used to look up services provided by this application.
  // |exposed_services| can be used to look up services exposed by the
  // application at |requestor_url|.
  AcceptConnection(string requestor_url,
                   ServiceProvider&? services,
                   ServiceProvider? exposed_services);

  // Called to request the application shut itself down gracefully.
  RequestQuit();
};
