Class StagingManager

java.lang.Object
ghidra.features.bsim.query.protocol.StagingManager
Direct Known Subclasses:
FunctionStaging, NullStaging

public abstract class StagingManager extends Object
Abstract class for splitting up a (presumably large) query into smaller pieces The object must be configured by a call to setQuery with details of the staged query and then typically a call to setGlobalManager which specifies the data for the whole query Placing the actual staged queries is accomplished by first calling initialize, which establishes the first stage query, obtainable via the getQuery method. Successive stage queries are built by calling nextStage repeatedly until it returns false.
  • Field Details

    • globalQuery

      protected BSimQuery<?> globalQuery
    • totalsize

      protected int totalsize
    • queriesmade

      protected int queriesmade
  • Constructor Details

    • StagingManager

      public StagingManager()
  • Method Details

    • getTotalSize

      public int getTotalSize()
    • getQueriesMade

      public int getQueriesMade()
    • getQuery

      public abstract BSimQuery<?> getQuery()
      Get the current staged query
      Returns:
      the QueryResponseRecord object
    • initialize

      public abstract boolean initialize(BSimQuery<?> q) throws LSHException
      Establish the first query stage
      Parameters:
      q - the query
      Returns:
      true if the initial query is constructed
      Throws:
      LSHException - if the initialization fails
    • nextStage

      public abstract boolean nextStage() throws LSHException
      Establish the next query stage
      Returns:
      true if a next query is constructed
      Throws:
      LSHException - if creating the new query fails