Home | History | Annotate | Download | only in system
      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