1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package org.chromium.mojo.system; 6 7 import java.io.Closeable; 8 9 /** 10 * Definition of a run loop. 11 */ 12 public interface RunLoop extends Closeable { 13 /** 14 * Start the run loop. It will continue until quit() is called. 15 */ 16 public void run(); 17 18 /** 19 * Start the run loop and stop it as soon as no task is present in the work queue. 20 */ 21 public void runUntilIdle(); 22 23 /* 24 * Quit the currently running run loop. 25 */ 26 public void quit(); 27 28 /** 29 * Add a runnable to the queue of tasks. 30 * @param runnable Callback to be executed by the run loop. 31 * @param delay Delay, in MojoTimeTicks (microseconds) before the callback should 32 * be executed. 33 */ 34 public void postDelayedTask(Runnable runnable, long delay); 35 36 /** 37 * Destroy the run loop and deregister it from Core. 38 */ 39 @Override 40 public abstract void close(); 41 } 42