NewStyleCpgPassBase

io.shiftleft.passes.NewStyleCpgPassBase
abstract class NewStyleCpgPassBase[T <: AnyRef] extends CpgPassBase

NewStyleCpgPassBase is the shared base between ForkJoinParallelCpgPass and ConcurrentWriterCpgPass, containing shared boilerplate. We don't want ConcurrentWriterCpgPass as a subclass of ForkJoinParallelCpgPass because that would make it hard to whether an instance is non-racy.

Please don't subclass this directly. The only reason it's not sealed is that this would mess with our file hierarchy.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Concise view

Type members

Types

type DiffGraphBuilder = DiffGraphBuilder

Value members

Abstract methods

def generateParts(): Array[_ <: AnyRef]
def runOnPart(builder: DiffGraphBuilder, part: T): Unit

Concrete methods

override def createAndApply(): Unit

Attributes

Definition Classes
def finish(): Unit
def init(): Unit
override def runWithBuilder(externalBuilder: DiffGraphBuilder): Int

Runs the cpg pass, adding changes to the passed builder. Use with caution -- API is unstable. Returns max(nParts, 1), where nParts is either the number of parallel parts, or the number of iterarator elements in case of legacy passes. Includes init() and finish() logic.

Runs the cpg pass, adding changes to the passed builder. Use with caution -- API is unstable. Returns max(nParts, 1), where nParts is either the number of parallel parts, or the number of iterarator elements in case of legacy passes. Includes init() and finish() logic.

Attributes

Definition Classes

Inherited methods

def createApplySerializeAndStore(serializedCpg: SerializedCpg, inverse: Boolean, prefix: String): Unit

Attributes

Inherited from:
CpgPassBase
def name: String

Name of the pass. By default it is inferred from the name of the class, override if needed.

Name of the pass. By default it is inferred from the name of the class, override if needed.

Attributes

Inherited from:
CpgPassBase
def runWithBuilderLogged(builder: DiffGraphBuilder): Int

Wraps runWithBuilder with logging, and swallows raised exceptions. Use with caution -- API is unstable. A return value of -1 indicates failure, otherwise the return value of runWithBuilder is passed through.

Wraps runWithBuilder with logging, and swallows raised exceptions. Use with caution -- API is unstable. A return value of -1 indicates failure, otherwise the return value of runWithBuilder is passed through.

Attributes

Inherited from:
CpgPassBase