Class ProcessStarter

java.lang.Object
org.im4java.process.ProcessStarter
Direct Known Subclasses:
ImageCommand

public class ProcessStarter extends Object
This class implements the processing of os-commands using Runtime.exec(). The class does not use the newer ProcessBuilder, since it has no knowledge about the valid os-arguments of the generated command.
  • Field Details

    • BUFFER_SIZE

      public static final int BUFFER_SIZE
      Buffer size of process input-stream (used for reading the output (sic!) of the process). Currently 64KB.
      See Also:
  • Constructor Details

    • ProcessStarter

      protected ProcessStarter()
      Constructor. Set the image magick path if windows
  • Method Details

    • setInputProvider

      public void setInputProvider(InputProvider pInputProvider)
      Set the InputProvider for the ProcessStarter (if used as a pipe).
      Parameters:
      pInputProvider - the InputProvider to be set
    • getIInputProvider

      public InputProvider getIInputProvider()
      Returns:
      the iInputProvider
    • setOutputConsumer

      public void setOutputConsumer(OutputConsumer pOutputConsumer)
      Set the OutputConsumer for the ProcessStarter (if used as a pipe).
      Parameters:
      pOutputConsumer - the OutputConsumer to be set
    • setErrorConsumer

      public void setErrorConsumer(ErrorConsumer pErrorConsumer)
      Set the ErrorConsumer for the stderr of the ProcessStarter.
      Parameters:
      pErrorConsumer - the ErrorConsumer to be set
    • getIProcessListener

      public LinkedList<ProcessListener> getIProcessListener()
      return iProcessListener
      Returns:
      ProcessListener linked list
    • addProcessListener

      public void addProcessListener(ProcessListener pProcessListener)
      Add a ProcessListener to this ProcessStarter.
      Parameters:
      pProcessListener - the ProcessListener to add
    • run

      protected int run(LinkedList<String> pArgs) throws IOException, InterruptedException
      Execute the command.
      Parameters:
      pArgs - arguments for command
      Returns:
      process return value
      Throws:
      IOException - IO problems
      InterruptedException - Interruptions problems
    • startProcess

      public Process startProcess(LinkedList<String> pArgs) throws IOException, InterruptedException
      Execute the command.
      Parameters:
      pArgs - list of arguments for the process
      Returns:
      return value of ProcessBuilder.start()
      Throws:
      IOException - IO problems
      InterruptedException - Interruption problems
    • waitForProcess

      public int waitForProcess(Process pProcess) throws IOException, InterruptedException
      Perform process input/output and wait for process to terminate.
      Parameters:
      pProcess - the process
      Returns:
      the process exit value
      Throws:
      IOException - IO problems
      InterruptedException - Interrupted Exception problems
    • setAsyncMode

      public void setAsyncMode(boolean pAsyncMode)
      Parameters:
      pAsyncMode - the iAsyncMode to set
    • isAsyncMode

      public boolean isAsyncMode()
      Returns:
      the iAsyncMode