chromium/services/service_manager/tests/lifecycle/lifecycle.test-mojom

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module service_manager.test.mojom;

// An interface implemented by a service exposing different ways for the
// service to "shut down" from the caller and service manager's perspective.
interface LifecycleControl {
  // Method for ping-pong acknowledgement.
  Ping() => ();

  // Perform any normal cleanup and shut down normally.
  GracefulQuit();

  // Crash immediately and leave the service manager and clients to deal with
  // the consequences.
  Crash();

  // Not actually a shutdown from the client's perspective, but the Service
  // Manager is no longer tracking this service.
  CloseServiceManagerConnection();
};

// Implemented by a service that connects to another service, thereby creating
// an instance for it in the service manager.
interface Parent {
  // Connects to another service and runs the callback when that service has
  // acked a Ping.
  ConnectToChild() => ();
  Quit();
};