Class WaitFor


  • public class WaitFor
    extends java.lang.Object
    Basic abstraction of a spin-lock waiting for something to be true. Ideally you'd use real concurrent mechanisms, but that's not always available for things you need to evaluate.
    Author:
    joelauer
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  WaitFor.Progress  
    • Constructor Summary

      Constructors 
      Constructor Description
      WaitFor​(java.util.function.Function<WaitFor.Progress,​java.lang.Boolean> condition)  
      WaitFor​(java.util.function.Supplier<java.lang.Boolean> condition)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean await​(long timeout, long every, java.util.concurrent.TimeUnit tu)  
      boolean await​(TimeDuration timeout, TimeDuration every)  
      boolean awaitMillis​(long timeout, long every)  
      static WaitFor of​(java.util.function.Function<WaitFor.Progress,​java.lang.Boolean> condition)  
      static WaitFor of​(java.util.function.Supplier<java.lang.Boolean> condition)  
      void require​(long timeout, long every, java.util.concurrent.TimeUnit tu)  
      void require​(TimeDuration timeout, TimeDuration every)  
      static void require​(TimeDuration timeout, TimeDuration every, java.util.function.Function<WaitFor.Progress,​java.lang.Boolean> condition)  
      static void require​(java.util.function.Supplier<java.lang.Boolean> condition, long timeout, long every, java.util.concurrent.TimeUnit timeUnit)  
      void requireMillis​(long timeout, long every)  
      static void requireMillis​(java.util.function.Supplier<java.lang.Boolean> condition, long timeout, long every)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • WaitFor

        public WaitFor​(java.util.function.Supplier<java.lang.Boolean> condition)
      • WaitFor

        public WaitFor​(java.util.function.Function<WaitFor.Progress,​java.lang.Boolean> condition)
    • Method Detail

      • requireMillis

        public void requireMillis​(long timeout,
                                  long every)
                           throws java.lang.InterruptedException,
                                  java.util.concurrent.TimeoutException
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.TimeoutException
      • require

        public void require​(long timeout,
                            long every,
                            java.util.concurrent.TimeUnit tu)
                     throws java.lang.InterruptedException,
                            java.util.concurrent.TimeoutException
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.TimeoutException
      • require

        public void require​(TimeDuration timeout,
                            TimeDuration every)
                     throws java.lang.InterruptedException,
                            java.util.concurrent.TimeoutException
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.TimeoutException
      • awaitMillis

        public boolean awaitMillis​(long timeout,
                                   long every)
                            throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException
      • await

        public boolean await​(long timeout,
                             long every,
                             java.util.concurrent.TimeUnit tu)
                      throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException
      • await

        public boolean await​(TimeDuration timeout,
                             TimeDuration every)
                      throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException
      • of

        public static WaitFor of​(java.util.function.Supplier<java.lang.Boolean> condition)
      • requireMillis

        public static void requireMillis​(java.util.function.Supplier<java.lang.Boolean> condition,
                                         long timeout,
                                         long every)
                                  throws java.lang.InterruptedException,
                                         java.util.concurrent.TimeoutException
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.TimeoutException
      • require

        public static void require​(TimeDuration timeout,
                                   TimeDuration every,
                                   java.util.function.Function<WaitFor.Progress,​java.lang.Boolean> condition)
                            throws java.lang.InterruptedException,
                                   java.util.concurrent.TimeoutException
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.TimeoutException
      • require

        public static void require​(java.util.function.Supplier<java.lang.Boolean> condition,
                                   long timeout,
                                   long every,
                                   java.util.concurrent.TimeUnit timeUnit)
                            throws java.lang.InterruptedException,
                                   java.util.concurrent.TimeoutException
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.TimeoutException