Packages

final case class OverflowDbDriver(storageLocation: Option[String] = Option(
JFile.createTempFile("plume-", ".odb").getAbsolutePath
)
, heapPercentageThreshold: Int = 80, serializationStatsEnabled: Boolean = false, dataFlowCacheFile: Option[Path] = Some(Paths.get("dataFlowCache.cbor")), compressDataFlowCache: Boolean = true)
extends IDriver with Product with Serializable

Driver to create an OverflowDB database file.

storageLocation

where the database will serialize to and deserialize from.

heapPercentageThreshold

the percentage of the JVM heap from when the database will begin swapping to disk.

serializationStatsEnabled

enables saving of serialization statistics.

dataFlowCacheFile

the path to the cache file where data-flow paths are saved to. If None then data flow results will not be saved.

compressDataFlowCache

whether to compress the serialized data-flow cache specified at dataFlowCacheFile.

Linear Supertypes
Serializable, Product, Equals, IDriver, AutoCloseable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. OverflowDbDriver
  2. Serializable
  3. Product
  4. Equals
  5. IDriver
  6. AutoCloseable
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new OverflowDbDriver(storageLocation: Option[String] = Option(
    JFile.createTempFile("plume-", ".odb").getAbsolutePath
    )
    , heapPercentageThreshold: Int = 80, serializationStatsEnabled: Boolean = false, dataFlowCacheFile: Option[Path] = Some(Paths.get("dataFlowCache.cbor")), compressDataFlowCache: Boolean = true)

    storageLocation

    where the database will serialize to and deserialize from.

    heapPercentageThreshold

    the percentage of the JVM heap from when the database will begin swapping to disk.

    serializationStatsEnabled

    enables saving of serialization statistics.

    dataFlowCacheFile

    the path to the cache file where data-flow paths are saved to. If None then data flow results will not be saved.

    compressDataFlowCache

    whether to compress the serialized data-flow cache specified at dataFlowCacheFile.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def NODES_IN_SCHEMA: Seq[String]
    Attributes
    protected
    Definition Classes
    IDriver
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def astLinker(): Unit

    Create REF edges from TYPE nodes to TYPE_DECL, EVAL_TYPE edges from nodes of various types to TYPE, REF edges from METHOD_REFs to METHOD, INHERITS_FROM nodes from TYPE_DECL nodes to TYPE, and ALIAS_OF edges from TYPE_DECL nodes to TYPE.

    Create REF edges from TYPE nodes to TYPE_DECL, EVAL_TYPE edges from nodes of various types to TYPE, REF edges from METHOD_REFs to METHOD, INHERITS_FROM nodes from TYPE_DECL nodes to TYPE, and ALIAS_OF edges from TYPE_DECL nodes to TYPE.

    Requires initMaps

    Attributes
    protected
    Definition Classes
    IDriver
  7. def buildInterproceduralEdges(): Unit

    Runs linkers for AST node relations and calls.

    Runs linkers for AST node relations and calls.

    Definition Classes
    IDriver
  8. def bulkTx(dg: AppliedDiff): Unit

    Executes all changes contained within the given overflowdb.BatchedUpdate.AppliedDiff as a (or set of) bulk transaction(s).

    Executes all changes contained within the given overflowdb.BatchedUpdate.AppliedDiff as a (or set of) bulk transaction(s).

    Definition Classes
    OverflowDbDriverIDriver
  9. def bulkTx(dg: AppliedDiffGraph): Unit

    Executes all changes contained within the given io.shiftleft.passes.AppliedDiffGraph as a (or set of) bulk transaction(s).

    Executes all changes contained within the given io.shiftleft.passes.AppliedDiffGraph as a (or set of) bulk transaction(s).

    Definition Classes
    OverflowDbDriverIDriver
  10. def clear(): Unit

    Removes all entries from the database.

    Removes all entries from the database.

    Definition Classes
    OverflowDbDriverIDriver
  11. def clearMaps(): Unit
    Attributes
    protected
    Definition Classes
    IDriver
  12. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  13. def close(): Unit
    Definition Classes
    OverflowDbDriver → AutoCloseable
  14. val compressDataFlowCache: Boolean
  15. val cpg: Cpg

    A direct pointer to the code property graph object.

  16. val dataFlowCacheFile: Option[Path]
  17. def deserializeLists(properties: Map[String, Any]): Map[String, Any]

    Where former list properties were serialized as strings, they will be deserialized as Seq.

    Where former list properties were serialized as strings, they will be deserialized as Seq.

    properties

    the serialized property map.

    returns

    a property map where comma-separated strings are made Seq objects.

    Attributes
    protected
    Definition Classes
    IDriver
  18. def dynamicCallLinker(): Unit

    Links all dynamic dispatch calls to their methods.

    Links all dynamic dispatch calls to their methods.

    Definition Classes
    OverflowDbDriverIDriver
  19. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. def exists(srcId: Long, dstId: Long, edge: String): Boolean

    Determines if there exists an edge between two nodes.

    Determines if there exists an edge between two nodes. Edges are assumed to be directional.

    Definition Classes
    OverflowDbDriverIDriver
  21. def exists(nodeId: Long): Boolean

    Determines if the node exists in the database.

    Determines if the node exists in the database.

    Definition Classes
    OverflowDbDriverIDriver
  22. def exportAsGraphML(exportPath: File): Unit

    Serializes the graph in the OverflowDB instance to the GraphML format to the given OutputStreamWriter.

    Serializes the graph in the OverflowDB instance to the GraphML format to the given OutputStreamWriter. This format is supported by TinkerGraph and Cytoscape.

    exportPath

    the path to write the GraphML representation of the graph to.

  23. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  24. val heapPercentageThreshold: Int
  25. def id(node: AbstractNode, dg: AppliedDiffGraph): Any

    Provides the assigned ID for the given node using the given diff graph.

    Provides the assigned ID for the given node using the given diff graph.

    Attributes
    protected
    Definition Classes
    IDriver
  26. def idInterval(lower: Long, upper: Long): Set[Long]

    Returns all the taken IDs between the two boundaries (inclusive).

    Returns all the taken IDs between the two boundaries (inclusive).

    Definition Classes
    OverflowDbDriverIDriver
  27. def initMaps(): Unit
    Attributes
    protected
    Definition Classes
    IDriver
  28. def isConnected: Boolean

    Will return true if the database is connected, false if otherwise.

    Will return true if the database is connected, false if otherwise.

    Definition Classes
    OverflowDbDriverIDriver
  29. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  30. def linkAstNodes(srcLabels: List[String], edgeType: String, dstNodeMap: Map[String, Any], dstFullNameKey: String, dstNodeType: String): Unit

    Links nodes by their source label and destination full name key to their destination nodes by the specified edge type using the destination node map as the lookup table.

    Links nodes by their source label and destination full name key to their destination nodes by the specified edge type using the destination node map as the lookup table. Source labels are assumed to be non-empty.

    Definition Classes
    OverflowDbDriverIDriver
  31. val methodFullNameToNode: Map[String, Any]
    Attributes
    protected
    Definition Classes
    IDriver
  32. val namespaceNameToNode: Map[String, Any]
    Attributes
    protected
    Definition Classes
    IDriver
  33. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  34. def nodesReachableBy(source: Traversal[CfgNode], sink: Traversal[CfgNode], sanitizers: Set[String] = Set.empty[String]): List[ReachableByResult]

    Lists all of the source nodes that reach the given sinks.

    Lists all of the source nodes that reach the given sinks. These results are cached between analysis runs.

    source

    the source query to match.

    sink

    the sink query to match.

    sanitizers

    a set of full method names to filter paths out with.

    returns

    the source nodes whose data flows to the given sinks uninterrupted.

  35. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  36. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  37. def productElementNames: Iterator[String]
    Definition Classes
    Product
  38. def propertyFromNodes(nodeType: String, keys: String*): List[Map[String, Any]]

    Obtains properties from the specified node type and key(s).

    Obtains properties from the specified node type and key(s). By default will return the ID property as one of the keys as "id".

    Definition Classes
    OverflowDbDriverIDriver
  39. def removeExpiredPathsFromCache(unchangedTypes: Set[String]): Unit

    Will traverse the deserialized cache and remove nodes belonging to types not in the given set of unchanged types.

    Will traverse the deserialized cache and remove nodes belonging to types not in the given set of unchanged types.

    unchangedTypes

    the list of types which have not changed since the last graph database update.

  40. def removeSourceFiles(filenames: String*): Unit

    Given filenames, will remove related TYPE, TYPE_DECL, METHOD (with AST children), and NAMESPACE_BLOCK.

    Given filenames, will remove related TYPE, TYPE_DECL, METHOD (with AST children), and NAMESPACE_BLOCK.

    Definition Classes
    OverflowDbDriverIDriver
  41. val serializationStatsEnabled: Boolean
  42. def serializeLists(properties: Map[String, Any]): Map[String, Any]

    To handle the case where databases don't support lists, we simply serialize these as a comma-separated string.

    To handle the case where databases don't support lists, we simply serialize these as a comma-separated string.

    properties

    the property map.

    returns

    a property map where lists are serialized as strings.

    Attributes
    protected
    Definition Classes
    IDriver
  43. def setDataflowContext(maxCallDepth: Int, methodSemantics: Option[BufferedSource] = None, initialCache: Option[ResultTable] = None): EngineContext

    Sets the context for the data-flow engine when performing nodesReachableBy queries.

    Sets the context for the data-flow engine when performing nodesReachableBy queries.

    maxCallDepth

    the new method call depth.

    methodSemantics

    the file containing method semantics for external methods.

    initialCache

    an initializer for the data-flow cache containing pre-calculated paths.

  44. def staticCallLinker(): Unit

    Links all static dispatch calls to their methods.

    Links all static dispatch calls to their methods.

    Definition Classes
    OverflowDbDriverIDriver
  45. val storageLocation: Option[String]
  46. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  47. val typeDeclFullNameToNode: Map[String, Any]
    Attributes
    protected
    Definition Classes
    IDriver
  48. val typeFullNameToNode: Map[String, Any]
    Attributes
    protected
    Definition Classes
    IDriver
  49. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  50. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  51. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from IDriver

Inherited from AutoCloseable

Inherited from AnyRef

Inherited from Any

Ungrouped