Class ParallelDecompiler


  • public class ParallelDecompiler
    extends java.lang.Object
    • Method Detail

      • decompileFunctions

        public static <R> java.util.List<R> decompileFunctions​(QCallback<Function,​R> callback,
                                                               Program program,
                                                               AddressSetView addresses,
                                                               TaskMonitor monitor)
                                                        throws java.lang.InterruptedException,
                                                               java.lang.Exception
        Decompile the given functions using multiple decompilers
        Parameters:
        callback - the callback to be called for each that is processed
        program - the program
        addresses - the addresses restricting which functions to decompile
        monitor - the task monitor
        Returns:
        the list of client results
        Throws:
        java.lang.InterruptedException - if interrupted
        java.lang.Exception - if any other exception occurs
      • decompileFunctions

        public static <R> java.util.List<R> decompileFunctions​(QCallback<Function,​R> callback,
                                                               java.util.Collection<Function> functions,
                                                               TaskMonitor monitor)
                                                        throws java.lang.InterruptedException,
                                                               java.lang.Exception
        Decompile the given functions using multiple decompilers
        Parameters:
        callback - the callback to be called for each that is processed
        functions - the functions to decompile
        monitor - the task monitor
        Returns:
        the list of client results
        Throws:
        java.lang.InterruptedException - if interrupted
        java.lang.Exception - if any other exception occurs
      • decompileFunctions

        public static <R> void decompileFunctions​(QCallback<Function,​R> callback,
                                                  Program program,
                                                  java.util.Iterator<Function> functions,
                                                  java.util.function.Consumer<R> resultsConsumer,
                                                  TaskMonitor monitor)
                                           throws java.lang.InterruptedException,
                                                  java.lang.Exception
        Decompile the given functions using multiple decompilers.

        Results will be passed to the given consumer as they are produced. Calling this method allows you to handle results as they are discovered.

        This method will wait for all processing before returning.

        Parameters:
        callback - the callback to be called for each that is processed
        program - the program
        functions - the functions to decompile
        resultsConsumer - the consumer to which results will be passed
        monitor - the task monitor
        Throws:
        java.lang.InterruptedException - if interrupted
        java.lang.Exception - if any other exception occurs
      • createChunkingParallelDecompiler

        public static <R> ChunkingParallelDecompiler<R> createChunkingParallelDecompiler​(QCallback<Function,​R> callback,
                                                                                         TaskMonitor monitor)
        Creates an object that can be used to perform decompilation of a limited number of functions at a time, as opposed to working over an entire range of functions at once. decompileFunctions(QCallback, Program, AddressSetView, TaskMonitor) will create and tear down concurrent data structures on each use, making repeated calls less efficient. You would use this method when you wish to perform periodic work as results are returned and when using the callback mechanism is not sufficient such as when ordering of results is required.
        Parameters:
        callback - the callback required to perform work.
        monitor - the monitor used to report progress and to cancel
        Returns:
        the parallel decompiler used for decompiling.