673 lines
39 KiB
HTML
673 lines
39 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.17"/>
|
|
<meta name="description" content="PhasicFlow is an open-source parallel DEM (discrete element method) package for simulating granular flow. It is developed in C++ and can be exectued on both GPU (like CUDA) and CPU.">
|
|
<title>PhasicFlow: observer Class 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="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.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>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(document).ready(function() { init_search(); });
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/x-mathjax-config">
|
|
MathJax.Hub.Config({
|
|
extensions: ["tex2jax.js"],
|
|
jax: ["input/TeX","output/HTML-CSS"],
|
|
});
|
|
</script>
|
|
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="customdoxygen.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" >
|
|
<tbody>
|
|
<tr>
|
|
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
|
|
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
|
<span class="left">
|
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
alt=""/>
|
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
|
</span><span class="right">
|
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
|
</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td id="projectbrief">
|
|
<a href="https://https://cemf.ir">www.cemf.ir</a>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.17 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
/* @license-end */
|
|
</script>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(document).ready(function(){initNavTree('classpFlow_1_1observer.html',''); initResizable(); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- 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">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="#pub-static-methods">Static Public Member Functions</a> |
|
|
<a href="#pri-methods">Private Member Functions</a> |
|
|
<a href="#pri-attribs">Private Attributes</a> |
|
|
<a href="classpFlow_1_1observer-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">observer Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
|
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for observer:</div>
|
|
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><img src="classpFlow_1_1observer__inherit__graph.png" border="0" usemap="#observer_inherit__map" alt="Inheritance graph"/></div>
|
|
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
|
|
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
|
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for observer:</div>
|
|
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><img src="classpFlow_1_1observer__coll__graph.png" border="0" usemap="#observer_coll__map" alt="Collaboration graph"/></div>
|
|
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:aa4805b6451fbb1651a6fd3eb8e0db673"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#aa4805b6451fbb1651a6fd3eb8e0db673">observer</a> (<a class="el" href="classpFlow_1_1message.html">message</a> msg)</td></tr>
|
|
<tr class="separator:aa4805b6451fbb1651a6fd3eb8e0db673"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a19690aae8f79f259dab21ac5be29b0da"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#a19690aae8f79f259dab21ac5be29b0da">observer</a> (const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a> *subscrbr, <a class="el" href="classpFlow_1_1message.html">message</a> msg)</td></tr>
|
|
<tr class="separator:a19690aae8f79f259dab21ac5be29b0da"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af035b2f590ebbed9ace6ffaf3954a893"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#af035b2f590ebbed9ace6ffaf3954a893">~observer</a> ()</td></tr>
|
|
<tr class="separator:af035b2f590ebbed9ace6ffaf3954a893"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a008ac3cf9870600e8a24936cdd5ffd29"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#a008ac3cf9870600e8a24936cdd5ffd29">subscribe</a> (const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a> *subscrbr, <a class="el" href="classpFlow_1_1message.html">message</a> msg)</td></tr>
|
|
<tr class="separator:a008ac3cf9870600e8a24936cdd5ffd29"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a653c7226b70e6965bf6a79b5e33925ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpFlow_1_1observer.html">observer</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#a653c7226b70e6965bf6a79b5e33925ff">addEvent</a> (<a class="el" href="classpFlow_1_1message.html#a9ebe5a85b9070712ab5db5fd0bed687d">message::EVENT</a> event)</td></tr>
|
|
<tr class="separator:a653c7226b70e6965bf6a79b5e33925ff"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0bbca55d6c8f234990c4f78bf4449288"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#a0bbca55d6c8f234990c4f78bf4449288">subscribed</a> () const</td></tr>
|
|
<tr class="separator:a0bbca55d6c8f234990c4f78bf4449288"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae60104d9527f96b61e9bc2ea1e19c9f2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#ae60104d9527f96b61e9bc2ea1e19c9f2">addToSubscriber</a> (const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a> *subscrbr, <a class="el" href="classpFlow_1_1message.html">message</a> msg)</td></tr>
|
|
<tr class="separator:ae60104d9527f96b61e9bc2ea1e19c9f2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aee31914b946ab2ffc70663260bab8b21"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#aee31914b946ab2ffc70663260bab8b21">addToSubscriber</a> (const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a> &<a class="el" href="classpFlow_1_1subscriber.html">subscriber</a>)</td></tr>
|
|
<tr class="separator:aee31914b946ab2ffc70663260bab8b21"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3c895cc7758c9d0c06677104c56ee11d"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#a3c895cc7758c9d0c06677104c56ee11d">hearChanges</a> (<a class="el" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> t, <a class="el" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, <a class="el" href="namespacepFlow.html#abd01e8e67e3d94cab04ecaaf4f85ac1b">uint32</a> iter, const <a class="el" href="classpFlow_1_1message.html">message</a> &msg, const <a class="el" href="classpFlow_1_1anyList.html">anyList</a> &varList)=0</td></tr>
|
|
<tr class="separator:a3c895cc7758c9d0c06677104c56ee11d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
|
|
Static Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:a55aa647a7d2b1aa80f32344c471d26ba"><td class="memItemLeft" align="right" valign="top">static constexpr auto </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#a55aa647a7d2b1aa80f32344c471d26ba">numEvents</a> ()</td></tr>
|
|
<tr class="separator:a55aa647a7d2b1aa80f32344c471d26ba"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
|
|
Private Member Functions</h2></td></tr>
|
|
<tr class="memitem:a7533b1993f98fb6956bcd554d830c831"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#a7533b1993f98fb6956bcd554d830c831">changeSubscriber</a> (const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a> *newSub)</td></tr>
|
|
<tr class="separator:a7533b1993f98fb6956bcd554d830c831"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6945b636972adfaba66c9ca5f1e68a25"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#a6945b636972adfaba66c9ca5f1e68a25">invalidateSubscriber</a> ()</td></tr>
|
|
<tr class="separator:a6945b636972adfaba66c9ca5f1e68a25"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
|
|
Private Attributes</h2></td></tr>
|
|
<tr class="memitem:ab403197d923198c2416d3f784281ee88"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#ab403197d923198c2416d3f784281ee88">subscriber_</a> = nullptr</td></tr>
|
|
<tr class="memdesc:ab403197d923198c2416d3f784281ee88"><td class="mdescLeft"> </td><td class="mdescRight">pointer to subscriber <a href="classpFlow_1_1observer.html#ab403197d923198c2416d3f784281ee88">More...</a><br /></td></tr>
|
|
<tr class="separator:ab403197d923198c2416d3f784281ee88"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4c229c67dc8079103634057a5932408c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpFlow_1_1message.html">message</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#a4c229c67dc8079103634057a5932408c">message_</a></td></tr>
|
|
<tr class="memdesc:a4c229c67dc8079103634057a5932408c"><td class="mdescLeft"> </td><td class="mdescRight">list of events in the message <a href="classpFlow_1_1observer.html#a4c229c67dc8079103634057a5932408c">More...</a><br /></td></tr>
|
|
<tr class="separator:a4c229c67dc8079103634057a5932408c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7e334160291af35eeb5b69faeb83cefa"><td class="memItemLeft" align="right" valign="top">friend </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1observer.html#a7e334160291af35eeb5b69faeb83cefa">subscriber</a></td></tr>
|
|
<tr class="separator:a7e334160291af35eeb5b69faeb83cefa"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock">
|
|
<p class="definition">Definition at line <a class="el" href="observer_8hpp_source.html#l00033">33</a> of file <a class="el" href="observer_8hpp_source.html">observer.hpp</a>.</p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="aa4805b6451fbb1651a6fd3eb8e0db673"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa4805b6451fbb1651a6fd3eb8e0db673">◆ </a></span>observer() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classpFlow_1_1observer.html">observer</a> </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classpFlow_1_1message.html">message</a> </td>
|
|
<td class="paramname"><em>msg</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="observer_8cpp_source.html#l00031">31</a> of file <a class="el" href="observer_8cpp_source.html">observer.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a19690aae8f79f259dab21ac5be29b0da"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a19690aae8f79f259dab21ac5be29b0da">◆ </a></span>observer() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classpFlow_1_1observer.html">observer</a> </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a> * </td>
|
|
<td class="paramname"><em>subscrbr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="classpFlow_1_1message.html">message</a> </td>
|
|
<td class="paramname"><em>msg</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="observer_8cpp_source.html#l00036">36</a> of file <a class="el" href="observer_8cpp_source.html">observer.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af035b2f590ebbed9ace6ffaf3954a893"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af035b2f590ebbed9ace6ffaf3954a893">◆ </a></span>~observer()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">~<a class="el" href="classpFlow_1_1observer.html">observer</a> </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="observer_8cpp_source.html#l00044">44</a> of file <a class="el" href="observer_8cpp_source.html">observer.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a7533b1993f98fb6956bcd554d830c831"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7533b1993f98fb6956bcd554d830c831">◆ </a></span>changeSubscriber()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="classpFlow_1_1subscriber.html">pFlow::subscriber</a> * changeSubscriber </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a> * </td>
|
|
<td class="paramname"><em>newSub</em></td><td>)</td>
|
|
<td></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="observer_8cpp_source.html#l00024">24</a> of file <a class="el" href="observer_8cpp_source.html">observer.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="observer_8hpp_source.html#l00039">observer::subscriber_</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a6945b636972adfaba66c9ca5f1e68a25"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6945b636972adfaba66c9ca5f1e68a25">◆ </a></span>invalidateSubscriber()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void invalidateSubscriber </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="observer_8hpp_source.html#l00048">48</a> of file <a class="el" href="observer_8hpp_source.html">observer.hpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="observer_8hpp_source.html#l00039">observer::subscriber_</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a008ac3cf9870600e8a24936cdd5ffd29"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a008ac3cf9870600e8a24936cdd5ffd29">◆ </a></span>subscribe()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void subscribe </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a> * </td>
|
|
<td class="paramname"><em>subscrbr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="classpFlow_1_1message.html">message</a> </td>
|
|
<td class="paramname"><em>msg</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a653c7226b70e6965bf6a79b5e33925ff"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a653c7226b70e6965bf6a79b5e33925ff">◆ </a></span>addEvent()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classpFlow_1_1observer.html">pFlow::observer</a> & addEvent </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classpFlow_1_1message.html#a9ebe5a85b9070712ab5db5fd0bed687d">message::EVENT</a> </td>
|
|
<td class="paramname"><em>event</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="observer_8cpp_source.html#l00051">51</a> of file <a class="el" href="observer_8cpp_source.html">observer.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="iOstream_8hpp_source.html#l00341">pFlow::endl()</a>, <a class="el" href="error_8hpp_source.html#l00077">fatalErrorInFunction</a>, and <a class="el" href="error_8hpp_source.html#l00098">fatalExit</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="periodicBoundaryField_8cpp_source.html#l00022">periodicBoundaryField< T, MemorySpace >::periodicBoundaryField()</a>.</p>
|
|
<div id="dynsection-2" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
|
<img id="dynsection-2-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
|
|
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><img src="classpFlow_1_1observer_a653c7226b70e6965bf6a79b5e33925ff_cgraph.png" border="0" usemap="#classpFlow_1_1observer_a653c7226b70e6965bf6a79b5e33925ff_cgraph" alt=""/></div>
|
|
</div>
|
|
<div id="dynsection-3" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
|
<img id="dynsection-3-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
|
|
<div id="dynsection-3-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-3-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><img src="classpFlow_1_1observer_a653c7226b70e6965bf6a79b5e33925ff_icgraph.png" border="0" usemap="#classpFlow_1_1observer_a653c7226b70e6965bf6a79b5e33925ff_icgraph" alt=""/></div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0bbca55d6c8f234990c4f78bf4449288"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0bbca55d6c8f234990c4f78bf4449288">◆ </a></span>subscribed()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool subscribed </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="observer_8hpp_source.html#l00071">71</a> of file <a class="el" href="observer_8hpp_source.html">observer.hpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="observer_8hpp_source.html#l00039">observer::subscriber_</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae60104d9527f96b61e9bc2ea1e19c9f2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae60104d9527f96b61e9bc2ea1e19c9f2">◆ </a></span>addToSubscriber() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void addToSubscriber </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a> * </td>
|
|
<td class="paramname"><em>subscrbr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="classpFlow_1_1message.html">message</a> </td>
|
|
<td class="paramname"><em>msg</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="observer_8cpp_source.html#l00067">67</a> of file <a class="el" href="observer_8cpp_source.html">observer.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="iOstream_8hpp_source.html#l00341">pFlow::endl()</a>, <a class="el" href="error_8hpp_source.html#l00077">fatalErrorInFunction</a>, and <a class="el" href="error_8hpp_source.html#l00098">fatalExit</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="particles_8cpp_source.html#l00022">particles::particles()</a>.</p>
|
|
<div id="dynsection-4" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
|
<img id="dynsection-4-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
|
|
<div id="dynsection-4-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-4-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><img src="classpFlow_1_1observer_ae60104d9527f96b61e9bc2ea1e19c9f2_cgraph.png" border="0" usemap="#classpFlow_1_1observer_ae60104d9527f96b61e9bc2ea1e19c9f2_cgraph" alt=""/></div>
|
|
</div>
|
|
<div id="dynsection-5" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
|
<img id="dynsection-5-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
|
|
<div id="dynsection-5-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-5-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><img src="classpFlow_1_1observer_ae60104d9527f96b61e9bc2ea1e19c9f2_icgraph.png" border="0" usemap="#classpFlow_1_1observer_ae60104d9527f96b61e9bc2ea1e19c9f2_icgraph" alt=""/></div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aee31914b946ab2ffc70663260bab8b21"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aee31914b946ab2ffc70663260bab8b21">◆ </a></span>addToSubscriber() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool addToSubscriber </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a> & </td>
|
|
<td class="paramname"><em>subscriber</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="observer_8cpp_source.html#l00090">90</a> of file <a class="el" href="observer_8cpp_source.html">observer.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="subscriber_8cpp_source.html#l00085">subscriber::subscribe()</a>.</p>
|
|
<div id="dynsection-6" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
|
<img id="dynsection-6-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
|
|
<div id="dynsection-6-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-6-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><img src="classpFlow_1_1observer_aee31914b946ab2ffc70663260bab8b21_cgraph.png" border="0" usemap="#classpFlow_1_1observer_aee31914b946ab2ffc70663260bab8b21_cgraph" alt=""/></div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a55aa647a7d2b1aa80f32344c471d26ba"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a55aa647a7d2b1aa80f32344c471d26ba">◆ </a></span>numEvents()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static constexpr auto numEvents </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="observer_8hpp_source.html#l00085">85</a> of file <a class="el" href="observer_8hpp_source.html">observer.hpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="message_8hpp_source.html#l00177">message::numEvents()</a>.</p>
|
|
<div id="dynsection-7" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
|
<img id="dynsection-7-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
|
|
<div id="dynsection-7-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-7-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><img src="classpFlow_1_1observer_a55aa647a7d2b1aa80f32344c471d26ba_cgraph.png" border="0" usemap="#classpFlow_1_1observer_a55aa647a7d2b1aa80f32344c471d26ba_cgraph" alt=""/></div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3c895cc7758c9d0c06677104c56ee11d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3c895cc7758c9d0c06677104c56ee11d">◆ </a></span>hearChanges()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual bool hearChanges </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> </td>
|
|
<td class="paramname"><em>t</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> </td>
|
|
<td class="paramname"><em>dt</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="namespacepFlow.html#abd01e8e67e3d94cab04ecaaf4f85ac1b">uint32</a> </td>
|
|
<td class="paramname"><em>iter</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="classpFlow_1_1message.html">message</a> & </td>
|
|
<td class="paramname"><em>msg</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="classpFlow_1_1anyList.html">anyList</a> & </td>
|
|
<td class="paramname"><em>varList</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Implemented in <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField< T, MemorySpace ></a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField< pFlow::VectorSingle, pFlow::AB5History ></a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField< pFlow::VectorSingle, pFlow::AB4History ></a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField< real, void ></a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField< uint32, void ></a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField< T, void ></a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField< pFlow::VectorSingle, pFlow::AB3History ></a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField< realx3, void ></a>, <a class="el" href="classpFlow_1_1sphereParticles.html#a0f63a62676bba1a8a5cf891337d1d201">sphereParticles</a>, <a class="el" href="classpFlow_1_1grainParticles.html#a0f63a62676bba1a8a5cf891337d1d201">grainParticles</a>, <a class="el" href="classpFlow_1_1triSurfaceField.html#a0f63a62676bba1a8a5cf891337d1d201">triSurfaceField< T, MemorySpace ></a>, <a class="el" href="classpFlow_1_1triSurfaceField.html#a0f63a62676bba1a8a5cf891337d1d201">triSurfaceField< realx3 ></a>, <a class="el" href="classpFlow_1_1triSurfaceField.html#a0f63a62676bba1a8a5cf891337d1d201">triSurfaceField< uint32 ></a>, <a class="el" href="classpFlow_1_1boundaryGrainInteraction.html#a0f63a62676bba1a8a5cf891337d1d201">boundaryGrainInteraction< contactForceModel, geometryMotionModel ></a>, <a class="el" href="classpFlow_1_1boundarySphereInteraction.html#a0f63a62676bba1a8a5cf891337d1d201">boundarySphereInteraction< contactForceModel, geometryMotionModel ></a>, <a class="el" href="classpFlow_1_1grainInteraction.html#a0f63a62676bba1a8a5cf891337d1d201">grainInteraction< contactForceModel, geometryMotionModel, contactListType ></a>, <a class="el" href="classpFlow_1_1sphereInteraction.html#a0f63a62676bba1a8a5cf891337d1d201">sphereInteraction< contactForceModel, geometryMotionModel, contactListType ></a>, <a class="el" href="classpFlow_1_1boundaryField.html#a0f63a62676bba1a8a5cf891337d1d201">boundaryField< T, MemorySpace ></a>, <a class="el" href="classpFlow_1_1boundaryField.html#a0f63a62676bba1a8a5cf891337d1d201">boundaryField< T, void ></a>, <a class="el" href="classpFlow_1_1boundaryContactSearch.html#a0f63a62676bba1a8a5cf891337d1d201">boundaryContactSearch</a>, <a class="el" href="classpFlow_1_1particleIdHandler.html#a0f63a62676bba1a8a5cf891337d1d201">particleIdHandler</a>, <a class="el" href="classpFlow_1_1exitBoundaryField.html#a0f63a62676bba1a8a5cf891337d1d201">exitBoundaryField< T, MemorySpace ></a>, <a class="el" href="classpFlow_1_1periodicBoundaryField.html#a0f63a62676bba1a8a5cf891337d1d201">periodicBoundaryField< T, MemorySpace ></a>, <a class="el" href="classpFlow_1_1reflectiveBoundaryField.html#a0f63a62676bba1a8a5cf891337d1d201">reflectiveBoundaryField< T, MemorySpace ></a>, <a class="el" href="classpFlow_1_1boundaryIntegration.html#a0f63a62676bba1a8a5cf891337d1d201">boundaryIntegration</a>, <a class="el" href="classpFlow_1_1boundaryGrainParticles.html#a0f63a62676bba1a8a5cf891337d1d201">boundaryGrainParticles</a>, and <a class="el" href="classpFlow_1_1boundarySphereParticles.html#a0f63a62676bba1a8a5cf891337d1d201">boundarySphereParticles</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Data Documentation</h2>
|
|
<a id="ab403197d923198c2416d3f784281ee88"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab403197d923198c2416d3f784281ee88">◆ </a></span>subscriber_</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a>* subscriber_ = nullptr</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>pointer to subscriber </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="observer_8hpp_source.html#l00039">39</a> of file <a class="el" href="observer_8hpp_source.html">observer.hpp</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="observer_8cpp_source.html#l00024">observer::changeSubscriber()</a>, <a class="el" href="observer_8hpp_source.html#l00048">observer::invalidateSubscriber()</a>, and <a class="el" href="observer_8hpp_source.html#l00071">observer::subscribed()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4c229c67dc8079103634057a5932408c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4c229c67dc8079103634057a5932408c">◆ </a></span>message_</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classpFlow_1_1message.html">message</a> message_</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>list of events in the message </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="observer_8hpp_source.html#l00042">42</a> of file <a class="el" href="observer_8hpp_source.html">observer.hpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7e334160291af35eeb5b69faeb83cefa"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7e334160291af35eeb5b69faeb83cefa">◆ </a></span>subscriber</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">friend <a class="el" href="classpFlow_1_1subscriber.html">subscriber</a></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="observer_8hpp_source.html#l00044">44</a> of file <a class="el" href="observer_8hpp_source.html">observer.hpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following files:<ul>
|
|
<li>src/phasicFlow/eventManagement/<a class="el" href="observer_8hpp_source.html">observer.hpp</a></li>
|
|
<li>src/phasicFlow/eventManagement/<a class="el" href="observer_8cpp_source.html">observer.cpp</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="namespacepFlow.html">pFlow</a></li><li class="navelem"><a class="el" href="classpFlow_1_1observer.html">observer</a></li>
|
|
<li class="footer">Generated by
|
|
<a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|