*Manual Reference Pages - * DEVEL::MAT::GRAPH (3)
.ds Aq ’
### NAME
"Devel::MAT::Graph" - a set of references between related SVs
### CONTENTS
### DESCRIPTION
Instances of this class represent an entire graph of references between
related SVs, as a helper method for return values from various Devel::MAT
methods, which might be used for some sort of screen layout or other analysis
tasks.
### CONSTRUCTOR
#### new
`
``
$graph = Devel::MAT::Graph->new( $dumpfile )
`
Constructs a new `Devel::MAT::Graph` instance backed by the given dumpfile
(which is only actually used to make the `$node->sv` method work).
### MUTATION METHODS
#### add_sv
`
``
$graph->add_sv( $sv )
`
Makes the graph aware of the given Devel::MAT::SV. This is not strictly
necessary before calling `add_ref` or `add_root`, but ensures that `has_sv`
will return true immediately after it, and so can be used as a sentinel for
recursion control.
#### add_ref
`
``
$graph->add_ref( $from_sv, $to_sv, $desc )
`
Adds an edge to the graph, from and to the given SVs, with the given
description.
#### add_root
`
``
$graph->add_root( $from_sv, $desc )
`
Adds a root edge to the graph, at the given SV with the given description.
### QUERY METHODS
#### has_sv
`
``
$bool = $graph->has_sv( $sv )
`
Returns true if the graph has edges or roots for the given SV, or it has at
least been given to `add_sv`.
#### get_sv_node
`
``
$node = $graph->get_sv_node( $sv )
`
Returns a `Node` object for the given SV.
#### get_root_nodes
`
``
@desc_nodes = $graph->get_root_nodes
`
Returns an even-sized list of pairs, containing root descriptions and the
nodes having those roots, in no particular order.
### NODE OBJECTS
The values returned by `get_sv_node` respond to the following methods:
#### graph
`
``
$graph = $node->graph
`
Returns the containing `Devel::MAT::Graph` instance.
#### addr
`
``
$addr = $node->addr
`
Returns the address of the SV represented by this node.
#### sv
`
``
$sv = $node->sv
`
Returns the SV object itself, as taken from the dumpfile instance.
#### roots
`
``
@roots = $node->roots
`
Returns any root descriptions given (by calls to `$graph->add_root` for
the SV at this node.
`
` `
$graph->add_root( $sv, $desc );
( $desc, ... ) = $graph->get_sv_node( $sv )->roots
`
#### edges_out
`
``
@edges = $node->edges_out
`
Returns an even-sized list of any edge descriptions and more `Node` objects
given as references (by calls to `$graph->add_ref`) from the SV at this
node.
`
` `
$graph->add_ref( $from_sv, $to_sv, $desc )
( $desc, $to_edge, ... ) = $graph->get_sv_node( $from_sv )->edges_out
`
#### edges_out (scalar)
`
``
$n_edges = $node->edges_out
`
In scalar context, returns the *number of edges* that exist; i.e. half the
size of the pairlist that would be returned in list context.
#### edges_in
`
``
@edges = $node->edges_in
`
Similar to `edges_out`, but returns edges in the opposite direction; i.e.
edges of references to this node.
`
` `
$graph->add_ref( $from_sv, $to_sv, $desc )
( $desc, $from_edge, ... ) = $graph->get_sv_node( $to_sv )->edges_in
`
#### edges_in (scalar)
`
``
$n_edges = $node->edges_out
`
In scalar context, returns the *number of edges* that exist; i.e. half the
size of the pairlist that would be returned in list context.
### AUTHOR
Paul Evans <leonerd@leonerd.org.uk>
*perl v5.20.3* | DEVEL::MAT::GRAPH (3) | *2016-04-03* |
Visit the GSP FreeBSD Man Page Interface. Output converted with manServer 1.07. |