accrue.analysis.pointer

## Class PointsToGraphSync

- java.lang.Object
- - accrue.analysis.pointer.PointsToGraph
  - - accrue.analysis.pointer.PointsToGraphSync

- Type Parameters:
    `E` -

      public class PointsToGraphSync
      extends PointsToGraph

  A concurrent implementation of the PointsToGraph.

- - ### Field Summary

    - ### Fields inherited from class accrue.analysis.pointer.PointsToGraph

      `af, solved`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PointsToGraphSync(StmtRegistrar registrar, PointsToEngineMultiThread engine)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `addCall(PointsToEngine.StmtAndContext sac, polyglot.types.CodeInstance caller, CContext callerContext, polyglot.types.ProcedureInstance callee, CContext calleeContext, polyglot.util.Position origin)`
    `boolean` | `addEdge(PointsToEngine.StmtAndContext sac, PointsToGraphNode src, HContext trg, polyglot.util.Position origin)`
    `boolean` | `addEdges(PointsToEngine.StmtAndContext sac, PointsToGraphNode src, java.util.Set<HContext> trgs, polyglot.util.Position origin)`
    `accrue.analysis.pointer.CallGraph` | `callGraph()`
    `void` | `dump(java.io.PrintStream out)` Dump the graph in a human readable form.
    `void` | `dumpPointsToGraph(int level)` Dump the graph in GraphViz dot format.
    `long` | `edgeSize()`
    `java.util.Set<CContext>` | `getContexts(polyglot.types.CodeInstance pi)`
    `java.util.Set<PointsToGraphNode>` | `getNodes()`
    `java.util.Set<HContext>` | `pointsTo(PointsToEngine.StmtAndContext sac, PointsToGraphNode r)`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class accrue.analysis.pointer.PointsToGraph

      `equals, hashCode, nodeSize, pointsTo, pointsToFiltered, pointsToFiltered`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### PointsToGraphSync

          public PointsToGraphSync(StmtRegistrar registrar,
                           PointsToEngineMultiThread engine)

  - ### Method Detail

    - #### getContexts

          public java.util.Set<CContext> getContexts(polyglot.types.CodeInstance pi)

      Specified by:
        `getContexts` in class `PointsToGraph`

    - #### getNodes

          public java.util.Set<PointsToGraphNode> getNodes()

    - #### callGraph

          public accrue.analysis.pointer.CallGraph callGraph()

      Specified by:
        `callGraph` in class `PointsToGraph`

    - #### dump

          public void dump(java.io.PrintStream out)

      Description copied from class: `PointsToGraph`
      Dump the graph in a human readable form.
      Specified by:
        `dump` in class `PointsToGraph`

    - #### edgeSize

          public long edgeSize()

      Specified by:
        `edgeSize` in class `PointsToGraph`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### dumpPointsToGraph

          public void dumpPointsToGraph(int level)

      Description copied from class: `PointsToGraph`
      Dump the graph in GraphViz dot format.
      Specified by:
        `dumpPointsToGraph` in class `PointsToGraph`

    - #### addEdge

          public boolean addEdge(PointsToEngine.StmtAndContext sac,
                        PointsToGraphNode src,
                        HContext trg,
                        polyglot.util.Position origin)

      Specified by:
        `addEdge` in class `PointsToGraph`

    - #### addEdges

          public boolean addEdges(PointsToEngine.StmtAndContext sac,
                         PointsToGraphNode src,
                         java.util.Set<HContext> trgs,
                         polyglot.util.Position origin)

      Specified by:
        `addEdges` in class `PointsToGraph`

    - #### addCall

          public boolean addCall(PointsToEngine.StmtAndContext sac,
                        polyglot.types.CodeInstance caller,
                        CContext callerContext,
                        polyglot.types.ProcedureInstance callee,
                        CContext calleeContext,
                        polyglot.util.Position origin)

      Specified by:
        `addCall` in class `PointsToGraph`

    - #### pointsTo

          public java.util.Set<HContext> pointsTo(PointsToEngine.StmtAndContext sac,
                                         PointsToGraphNode r)

      Specified by:
        `pointsTo` in class `PointsToGraph`