// 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 dart;

interface PingPongService {
  // Register the client interface with the service.
  SetClient(PingPongClient client);

  // Typically calls PingPongClient::Pong(ping_value + 1)
  Ping(uint16 ping_value);

  // Ping the PingPongService at |url| |count| times and return true
  // after the final Pong() is received.
  PingTargetURL(string url, uint16 count) => (bool ok);

  // Ping the PingPongService |count| times and return true
  // after the final Pong() is received.
  PingTargetService(PingPongService service, uint16 count) => (bool ok);

  // Return a PingPongService
  GetPingPongService(PingPongService& service);

  // Make it stop.
  Quit();
};

interface PingPongClient {
  Pong(uint16 pong_value);
};
