io.shiftleft.passes

Type members

Classlikes

case
class AppliedDiffGraph(diffGraph: DiffGraph, inverseDiffGraph: Option[DiffGraph], nodeToOdbNode: IdentityHashMap[NewNode, StoredNode])

Diff Graph that has been applied to a source graph. This is a wrapper around diff graph, which additionally provides a map from nodes to graph ids.

Diff Graph that has been applied to a source graph. This is a wrapper around diff graph, which additionally provides a map from nodes to graph ids.

class BatchUpdateBiListener(forward: Boolean, inverse: Boolean) extends ModificationListener
class BatchUpdateForwardListener extends ModificationListener
class BatchUpdateInverseListener extends ModificationListener
abstract
class ConcurrentWriterCpgPass[T <: AnyRef](cpg: Cpg, outName: String, keyPool: Option[KeyPool]) extends NewStyleCpgPassBase[T]
Companion
object
Companion
class
Companion
object
object DiffGraph
Companion
class

Provides functionality to serialize diff graphs and add them to existing serialized CPGs as graph overlays.

Provides functionality to serialize diff graphs and add them to existing serialized CPGs as graph overlays.

Companion
object
abstract
class ForkJoinParallelCpgPass[T <: AnyRef](cpg: Cpg, outName: String, keyPool: Option[KeyPool]) extends NewStyleCpgPassBase[T]
class IntervalKeyPool(val first: Long, val last: Long) extends KeyPool

A key pool that returns the integers of the interval [first, last] in a thread-safe manner.

A key pool that returns the integers of the interval [first, last] in a thread-safe manner.

trait KeyPool extends KeyPool

A pool of long integers that serve as node ids. Using the method next, the pool provides the next id in a thread-safe manner.

A pool of long integers that serve as node ids. Using the method next, the pool provides the next id in a thread-safe manner.

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.

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.

class ParallelIteratorExecutor[T](iterator: Iterator[T])(implicit executionContext: ExecutionContext)
class SequenceKeyPool(seq: Seq[Long]) extends KeyPool

A key pool that returns elements of seq in order in a thread-safe manner.

A key pool that returns elements of seq in order in a thread-safe manner.

abstract
class SimpleCpgPass(cpg: Cpg, outName: String, keyPool: Option[KeyPool]) extends ForkJoinParallelCpgPass[AnyRef]

Deprecated classlikes

@deprecated(message = "Please use overflowdb.BatchedUpdate.DiffGraph as a replacement.", since = "v1.3.508")
sealed
trait DiffGraph

A lightweight write-only graph used for creation of CPG graph overlays

A lightweight write-only graph used for creation of CPG graph overlays

The graph can store edges to/from nodes that do not exist in the base graph. It doesn't assign ids for these nodes until the diff graph is serialized. Ids of new nodes may collide with ids of nodes in the base graph, which are not sources or destinations of edges of the diff graph. When the CPG loader adds nodes of the overlay, it therefor needs to reassign ids for nodes if they are already used in the original CPG.

Companion
object
Deprecated
[Since version v1.3.508] Please use overflowdb.BatchedUpdate.DiffGraph as a replacement.