Class ProcessRunner.LongRunningProcess

  • All Implemented Interfaces:
    java.lang.AutoCloseable
    Enclosing class:
    ProcessRunner

    public class ProcessRunner.LongRunningProcess
    extends java.lang.Process
    implements java.lang.AutoCloseable
    A long-running process that can be waited for.
    • Constructor Summary

      Constructors 
      Constructor Description
      LongRunningProcess​(java.lang.Process delegate, java.util.List<java.lang.String> args, java.util.concurrent.Future<byte[]> outputFut, java.util.concurrent.Future<byte[]> errorFut)  
    • Constructor Detail

      • LongRunningProcess

        public LongRunningProcess​(@Nonnull
                                  java.lang.Process delegate,
                                  @Nonnull
                                  java.util.List<java.lang.String> args,
                                  @Nonnull
                                  java.util.concurrent.Future<byte[]> outputFut,
                                  @Nullable
                                  java.util.concurrent.Future<byte[]> errorFut)
    • Method Detail

      • getOutputStream

        public java.io.OutputStream getOutputStream()
        Specified by:
        getOutputStream in class java.lang.Process
      • getInputStream

        public java.io.InputStream getInputStream()
        Specified by:
        getInputStream in class java.lang.Process
      • getErrorStream

        public java.io.InputStream getErrorStream()
        Specified by:
        getErrorStream in class java.lang.Process
      • waitFor

        public int waitFor()
                    throws java.lang.InterruptedException
        Specified by:
        waitFor in class java.lang.Process
        Throws:
        java.lang.InterruptedException
      • waitFor

        public boolean waitFor​(long timeout,
                               java.util.concurrent.TimeUnit unit)
                        throws java.lang.InterruptedException
        Overrides:
        waitFor in class java.lang.Process
        Throws:
        java.lang.InterruptedException
      • exitValue

        public int exitValue()
        Specified by:
        exitValue in class java.lang.Process
      • destroy

        public void destroy()
        Specified by:
        destroy in class java.lang.Process
      • destroyForcibly

        public java.lang.Process destroyForcibly()
        Overrides:
        destroyForcibly in class java.lang.Process
      • isAlive

        public boolean isAlive()
        Overrides:
        isAlive in class java.lang.Process
      • result

        public ProcessRunner.Result result()
                                    throws java.util.concurrent.ExecutionException,
                                           java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable