blob: 2bfe068fe3abb12080a1b1cad7812914e1fbe88d [file] [log] [blame]
// 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();
};