Files
rippled/classripple_1_1test_1_1csf_1_1Digraph.html
2025-11-04 00:36:48 -08:00

682 lines
37 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: ripple::test::csf::Digraph&lt; Vertex, EdgeData &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceripple.html">ripple</a></li><li class="navelem"><a class="el" href="namespaceripple_1_1test.html">test</a></li><li class="navelem"><a class="el" href="namespaceripple_1_1test_1_1csf.html">csf</a></li><li class="navelem"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">Digraph</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classripple_1_1test_1_1csf_1_1Digraph-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">ripple::test::csf::Digraph&lt; Vertex, EdgeData &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Directed graph.
<a href="classripple_1_1test_1_1csf_1_1Digraph.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="Digraph_8h_source.html">Digraph.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1test_1_1csf_1_1Digraph_1_1Edge.html">Edge</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vertices and data associated with an <a class="el" href="structripple_1_1test_1_1csf_1_1Digraph_1_1Edge.html" title="Vertices and data associated with an Edge.">Edge</a>. <a href="structripple_1_1test_1_1csf_1_1Digraph_1_1Edge.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af5178dc42903feb3893fbf50cb895d0e" id="r_af5178dc42903feb3893fbf50cb895d0e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#af5178dc42903feb3893fbf50cb895d0e">connect</a> (Vertex source, Vertex target, EdgeData e)</td></tr>
<tr class="memdesc:af5178dc42903feb3893fbf50cb895d0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect two vertices. <br /></td></tr>
<tr class="separator:af5178dc42903feb3893fbf50cb895d0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0eaf8f49e00f4ed89083849ed075991a" id="r_a0eaf8f49e00f4ed89083849ed075991a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a0eaf8f49e00f4ed89083849ed075991a">connect</a> (Vertex source, Vertex target)</td></tr>
<tr class="memdesc:a0eaf8f49e00f4ed89083849ed075991a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect two vertices using default constructed edge data. <br /></td></tr>
<tr class="separator:a0eaf8f49e00f4ed89083849ed075991a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3f8670228239a8a556cc8cb603d043d" id="r_af3f8670228239a8a556cc8cb603d043d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#af3f8670228239a8a556cc8cb603d043d">disconnect</a> (Vertex source, Vertex target)</td></tr>
<tr class="memdesc:af3f8670228239a8a556cc8cb603d043d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnect two vertices. <br /></td></tr>
<tr class="separator:af3f8670228239a8a556cc8cb603d043d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5b9349ebc4681ed99cd57fbd4e2fd09" id="r_ab5b9349ebc4681ed99cd57fbd4e2fd09"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; EdgeData &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#ab5b9349ebc4681ed99cd57fbd4e2fd09">edge</a> (Vertex source, Vertex target) const</td></tr>
<tr class="memdesc:ab5b9349ebc4681ed99cd57fbd4e2fd09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return edge data between two vertices. <br /></td></tr>
<tr class="separator:ab5b9349ebc4681ed99cd57fbd4e2fd09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a376b9c22f02e21c62e78c4e9ab5f81b7" id="r_a376b9c22f02e21c62e78c4e9ab5f81b7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a376b9c22f02e21c62e78c4e9ab5f81b7">connected</a> (Vertex source, Vertex target) const</td></tr>
<tr class="memdesc:a376b9c22f02e21c62e78c4e9ab5f81b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if two vertices are connected. <br /></td></tr>
<tr class="separator:a376b9c22f02e21c62e78c4e9ab5f81b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4eb88a3a85abfd45f454a43efc40b234" id="r_a4eb88a3a85abfd45f454a43efc40b234"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a4eb88a3a85abfd45f454a43efc40b234">outVertices</a> () const</td></tr>
<tr class="memdesc:a4eb88a3a85abfd45f454a43efc40b234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Range over vertices in the graph. <br /></td></tr>
<tr class="separator:a4eb88a3a85abfd45f454a43efc40b234"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80a41327fb85745271b2adffa7ca6445" id="r_a80a41327fb85745271b2adffa7ca6445"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a80a41327fb85745271b2adffa7ca6445">outVertices</a> (Vertex source) const</td></tr>
<tr class="memdesc:a80a41327fb85745271b2adffa7ca6445"><td class="mdescLeft">&#160;</td><td class="mdescRight">Range over target vertices. <br /></td></tr>
<tr class="separator:a80a41327fb85745271b2adffa7ca6445"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91596a470122ed7c7733ef0a3ea6dcbd" id="r_a91596a470122ed7c7733ef0a3ea6dcbd"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a91596a470122ed7c7733ef0a3ea6dcbd">outEdges</a> (Vertex source) const</td></tr>
<tr class="memdesc:a91596a470122ed7c7733ef0a3ea6dcbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Range of out edges. <br /></td></tr>
<tr class="separator:a91596a470122ed7c7733ef0a3ea6dcbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadf43b4ce2c8df379d8a55548e25c90d" id="r_aadf43b4ce2c8df379d8a55548e25c90d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#aadf43b4ce2c8df379d8a55548e25c90d">outDegree</a> (Vertex source) const</td></tr>
<tr class="memdesc:aadf43b4ce2c8df379d8a55548e25c90d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vertex out-degree. <br /></td></tr>
<tr class="separator:aadf43b4ce2c8df379d8a55548e25c90d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59763b18ae86b5fc808992d406943c59" id="r_a59763b18ae86b5fc808992d406943c59"><td class="memTemplParams" colspan="2">template&lt;class VertexName &gt; </td></tr>
<tr class="memitem:a59763b18ae86b5fc808992d406943c59"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a59763b18ae86b5fc808992d406943c59">saveDot</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;<a class="el" href="namespaceripple.html#a7cc64e12723fbc9606d85442a2569fedac68271a63ddbc431c307beb7d2918275">out</a>, VertexName &amp;&amp;vertexName) const</td></tr>
<tr class="memdesc:a59763b18ae86b5fc808992d406943c59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save GraphViz dot file. <br /></td></tr>
<tr class="separator:a59763b18ae86b5fc808992d406943c59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5853bcc9de3a9133c8a9131f4bed5fb" id="r_ad5853bcc9de3a9133c8a9131f4bed5fb"><td class="memTemplParams" colspan="2">template&lt;class VertexName &gt; </td></tr>
<tr class="memitem:ad5853bcc9de3a9133c8a9131f4bed5fb"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#ad5853bcc9de3a9133c8a9131f4bed5fb">saveDot</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;fileName, VertexName &amp;&amp;vertexName) const</td></tr>
<tr class="separator:ad5853bcc9de3a9133c8a9131f4bed5fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-types" name="pri-types"></a>
Private Types</h2></td></tr>
<tr class="memitem:a2525a2188ede59e7e0c20545795f7a3e" id="r_a2525a2188ede59e7e0c20545795f7a3e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a2525a2188ede59e7e0c20545795f7a3e">Links</a> = boost::container::flat_map&lt; Vertex, EdgeData &gt;</td></tr>
<tr class="separator:a2525a2188ede59e7e0c20545795f7a3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43610322b471a0f96e94ab9e66c18e9c" id="r_a43610322b471a0f96e94ab9e66c18e9c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a43610322b471a0f96e94ab9e66c18e9c">Graph</a> = boost::container::flat_map&lt; Vertex, <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a2525a2188ede59e7e0c20545795f7a3e">Links</a> &gt;</td></tr>
<tr class="separator:a43610322b471a0f96e94ab9e66c18e9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:ac84817f1eb60ab10927633dc5fde2514" id="r_ac84817f1eb60ab10927633dc5fde2514"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a43610322b471a0f96e94ab9e66c18e9c">Graph</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#ac84817f1eb60ab10927633dc5fde2514">graph_</a></td></tr>
<tr class="separator:ac84817f1eb60ab10927633dc5fde2514"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4599e29cd505a7b5da3c006f24b8d7be" id="r_a4599e29cd505a7b5da3c006f24b8d7be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a2525a2188ede59e7e0c20545795f7a3e">Links</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a4599e29cd505a7b5da3c006f24b8d7be">empty</a></td></tr>
<tr class="separator:a4599e29cd505a7b5da3c006f24b8d7be"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;class Vertex, class EdgeData = detail::NoEdgeData&gt;<br />
class ripple::test::csf::Digraph&lt; Vertex, EdgeData &gt;</div><p>Directed graph. </p>
<p>Basic directed graph that uses an adjacency list to represent out edges.</p>
<p>Instances of Vertex uniquely identify vertices in the graph. Instances of EdgeData is any data to store in the edge connecting two vertices.</p>
<p>Both Vertex and EdgeData should be lightweight and cheap to copy. </p>
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00036">36</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a2525a2188ede59e7e0c20545795f7a3e" name="a2525a2188ede59e7e0c20545795f7a3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2525a2188ede59e7e0c20545795f7a3e">&#9670;&#160;</a></span>Links</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::Links = boost::container::flat_map&lt;Vertex, EdgeData&gt;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00038">38</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<a id="a43610322b471a0f96e94ab9e66c18e9c" name="a43610322b471a0f96e94ab9e66c18e9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43610322b471a0f96e94ab9e66c18e9c">&#9670;&#160;</a></span>Graph</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::Graph = boost::container::flat_map&lt;Vertex, <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a2525a2188ede59e7e0c20545795f7a3e">Links</a>&gt;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00039">39</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="af5178dc42903feb3893fbf50cb895d0e" name="af5178dc42903feb3893fbf50cb895d0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5178dc42903feb3893fbf50cb895d0e">&#9670;&#160;</a></span>connect() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::connect </td>
<td>(</td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">EdgeData&#160;</td>
<td class="paramname"><em>e</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Connect two vertices. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source vertex </td></tr>
<tr><td class="paramname">target</td><td>The target vertex </td></tr>
<tr><td class="paramname">e</td><td>The edge data </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the edge was created </dd></dl>
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00055">55</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<a id="a0eaf8f49e00f4ed89083849ed075991a" name="a0eaf8f49e00f4ed89083849ed075991a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0eaf8f49e00f4ed89083849ed075991a">&#9670;&#160;</a></span>connect() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::connect </td>
<td>(</td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>target</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Connect two vertices using default constructed edge data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source vertex </td></tr>
<tr><td class="paramname">target</td><td>The target vertex </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the edge was created </dd></dl>
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00068">68</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<a id="af3f8670228239a8a556cc8cb603d043d" name="af3f8670228239a8a556cc8cb603d043d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3f8670228239a8a556cc8cb603d043d">&#9670;&#160;</a></span>disconnect()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::disconnect </td>
<td>(</td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>target</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Disconnect two vertices. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source vertex </td></tr>
<tr><td class="paramname">target</td><td>The target vertex </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if an edge was removed</dd></dl>
<p>If source is not connected to target, this function does nothing. </p>
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00082">82</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<a id="ab5b9349ebc4681ed99cd57fbd4e2fd09" name="ab5b9349ebc4681ed99cd57fbd4e2fd09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5b9349ebc4681ed99cd57fbd4e2fd09">&#9670;&#160;</a></span>edge()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; EdgeData &gt; <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::edge </td>
<td>(</td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>target</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return edge data between two vertices. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source vertex </td></tr>
<tr><td class="paramname">target</td><td>The target vertex </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>optional&lt;Edge&gt; which is <a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_same.html">std::nullopt</a> if no edge exists </dd></dl>
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00100">100</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<a id="a376b9c22f02e21c62e78c4e9ab5f81b7" name="a376b9c22f02e21c62e78c4e9ab5f81b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a376b9c22f02e21c62e78c4e9ab5f81b7">&#9670;&#160;</a></span>connected()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::connected </td>
<td>(</td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>target</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if two vertices are connected. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source vertex </td></tr>
<tr><td class="paramname">target</td><td>The target vertex </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the source has an out edge to target </dd></dl>
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00119">119</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<a id="a4eb88a3a85abfd45f454a43efc40b234" name="a4eb88a3a85abfd45f454a43efc40b234"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4eb88a3a85abfd45f454a43efc40b234">&#9670;&#160;</a></span>outVertices() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="memname">
<tr>
<td class="memname">auto <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::outVertices </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Range over vertices in the graph. </p>
<dl class="section return"><dt>Returns</dt><dd>A boost transformed range over the vertices with out edges in the graph </dd></dl>
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00130">130</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<a id="a80a41327fb85745271b2adffa7ca6445" name="a80a41327fb85745271b2adffa7ca6445"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80a41327fb85745271b2adffa7ca6445">&#9670;&#160;</a></span>outVertices() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="memname">
<tr>
<td class="memname">auto <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::outVertices </td>
<td>(</td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>source</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Range over target vertices. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source vertex </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A boost transformed range over the target vertices of source. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00143">143</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<a id="a91596a470122ed7c7733ef0a3ea6dcbd" name="a91596a470122ed7c7733ef0a3ea6dcbd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91596a470122ed7c7733ef0a3ea6dcbd">&#9670;&#160;</a></span>outEdges()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="memname">
<tr>
<td class="memname">auto <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::outEdges </td>
<td>(</td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>source</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Range of out edges. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source vertex </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A boost transformed range of <a class="el" href="structripple_1_1test_1_1csf_1_1Digraph_1_1Edge.html" title="Vertices and data associated with an Edge.">Edge</a> type for all out edges of source. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00171">171</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<a id="aadf43b4ce2c8df379d8a55548e25c90d" name="aadf43b4ce2c8df379d8a55548e25c90d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aadf43b4ce2c8df379d8a55548e25c90d">&#9670;&#160;</a></span>outDegree()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::outDegree </td>
<td>(</td>
<td class="paramtype">Vertex&#160;</td>
<td class="paramname"><em>source</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Vertex out-degree. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source vertex </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of outgoing edges from source </dd></dl>
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00190">190</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<a id="a59763b18ae86b5fc808992d406943c59" name="a59763b18ae86b5fc808992d406943c59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59763b18ae86b5fc808992d406943c59">&#9670;&#160;</a></span>saveDot() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<div class="memtemplate">
template&lt;class VertexName &gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::saveDot </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">VertexName &amp;&amp;&#160;</td>
<td class="paramname"><em>vertexName</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Save GraphViz dot file. </p>
<p>Save a GraphViz dot description of the graph </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">fileName</td><td>The output file (creates) </td></tr>
<tr><td class="paramname">vertexName</td><td>A invokable T vertexName(Vertex const &amp;) that returns the name target use for the vertex in the file T must be ostream-able </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00208">208</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<a id="ad5853bcc9de3a9133c8a9131f4bed5fb" name="ad5853bcc9de3a9133c8a9131f4bed5fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5853bcc9de3a9133c8a9131f4bed5fb">&#9670;&#160;</a></span>saveDot() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<div class="memtemplate">
template&lt;class VertexName &gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::saveDot </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>fileName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">VertexName &amp;&amp;&#160;</td>
<td class="paramname"><em>vertexName</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00225">225</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="ac84817f1eb60ab10927633dc5fde2514" name="ac84817f1eb60ab10927633dc5fde2514"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac84817f1eb60ab10927633dc5fde2514">&#9670;&#160;</a></span>graph_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a43610322b471a0f96e94ab9e66c18e9c">Graph</a> <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::graph_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00040">40</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
<a id="a4599e29cd505a7b5da3c006f24b8d7be" name="a4599e29cd505a7b5da3c006f24b8d7be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4599e29cd505a7b5da3c006f24b8d7be">&#9670;&#160;</a></span>empty</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Vertex , class EdgeData = detail::NoEdgeData&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html#a2525a2188ede59e7e0c20545795f7a3e">Links</a> <a class="el" href="classripple_1_1test_1_1csf_1_1Digraph.html">ripple::test::csf::Digraph</a>&lt; Vertex, EdgeData &gt;::empty</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Digraph_8h_source.html#l00043">43</a> of file <a class="el" href="Digraph_8h_source.html">Digraph.h</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>