phasicFlow/doc/code-documentation/html/classpFlow_1_1observer.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&amp;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&amp;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&amp;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> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<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">&#160;</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">&#160;</td></tr>
<tr class="memitem:a19690aae8f79f259dab21ac5be29b0da"><td class="memItemLeft" align="right" valign="top">&#160;</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">&#160;</td></tr>
<tr class="memitem:af035b2f590ebbed9ace6ffaf3954a893"><td class="memItemLeft" align="right" valign="top">virtual&#160;</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">&#160;</td></tr>
<tr class="memitem:a008ac3cf9870600e8a24936cdd5ffd29"><td class="memItemLeft" align="right" valign="top">void&#160;</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">&#160;</td></tr>
<tr class="memitem:a653c7226b70e6965bf6a79b5e33925ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpFlow_1_1observer.html">observer</a> &amp;&#160;</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">&#160;</td></tr>
<tr class="memitem:a0bbca55d6c8f234990c4f78bf4449288"><td class="memItemLeft" align="right" valign="top">bool&#160;</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">&#160;</td></tr>
<tr class="memitem:ae60104d9527f96b61e9bc2ea1e19c9f2"><td class="memItemLeft" align="right" valign="top">void&#160;</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">&#160;</td></tr>
<tr class="memitem:aee31914b946ab2ffc70663260bab8b21"><td class="memItemLeft" align="right" valign="top">bool&#160;</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> &amp;<a class="el" href="classpFlow_1_1subscriber.html">subscriber</a>)</td></tr>
<tr class="separator:aee31914b946ab2ffc70663260bab8b21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c895cc7758c9d0c06677104c56ee11d"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</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> &amp;msg, const <a class="el" href="classpFlow_1_1anyList.html">anyList</a> &amp;varList)=0</td></tr>
<tr class="separator:a3c895cc7758c9d0c06677104c56ee11d"><td class="memSeparator" colspan="2">&#160;</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&#160;</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">&#160;</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> *&#160;</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">&#160;</td></tr>
<tr class="memitem:a6945b636972adfaba66c9ca5f1e68a25"><td class="memItemLeft" align="right" valign="top">void&#160;</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">&#160;</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> *&#160;</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">&#160;</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">&#160;</td></tr>
<tr class="memitem:a4c229c67dc8079103634057a5932408c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpFlow_1_1message.html">message</a>&#160;</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">&#160;</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">&#160;</td></tr>
<tr class="memitem:a7e334160291af35eeb5b69faeb83cefa"><td class="memItemLeft" align="right" valign="top">friend&#160;</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">&#160;</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 &amp; Destructor Documentation</h2>
<a id="aa4805b6451fbb1651a6fd3eb8e0db673"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4805b6451fbb1651a6fd3eb8e0db673">&#9670;&nbsp;</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>&#160;</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">&#9670;&nbsp;</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> *&#160;</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>&#160;</td>
<td class="paramname"><em>msg</em>&#160;</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">&#9670;&nbsp;</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">&#9670;&nbsp;</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> *&#160;</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">&#9670;&nbsp;</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">&#9670;&nbsp;</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> *&#160;</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>&#160;</td>
<td class="paramname"><em>msg</em>&#160;</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">&#9670;&nbsp;</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> &amp; addEvent </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classpFlow_1_1message.html#a9ebe5a85b9070712ab5db5fd0bed687d">message::EVENT</a>&#160;</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&lt; T, MemorySpace &gt;::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">&#9670;&nbsp;</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">&#9670;&nbsp;</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> *&#160;</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>&#160;</td>
<td class="paramname"><em>msg</em>&#160;</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">&#9670;&nbsp;</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> &amp;&#160;</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">&#9670;&nbsp;</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">&#9670;&nbsp;</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>&#160;</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>&#160;</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>&#160;</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> &amp;&#160;</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> &amp;&#160;</td>
<td class="paramname"><em>varList</em>&#160;</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&lt; T, MemorySpace &gt;</a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField&lt; pFlow::VectorSingle, pFlow::AB5History &gt;</a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField&lt; pFlow::VectorSingle, pFlow::AB4History &gt;</a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField&lt; real, void &gt;</a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField&lt; uint32, void &gt;</a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField&lt; T, void &gt;</a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField&lt; pFlow::VectorSingle, pFlow::AB3History &gt;</a>, <a class="el" href="classpFlow_1_1internalField.html#a0f63a62676bba1a8a5cf891337d1d201">internalField&lt; realx3, void &gt;</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&lt; T, MemorySpace &gt;</a>, <a class="el" href="classpFlow_1_1triSurfaceField.html#a0f63a62676bba1a8a5cf891337d1d201">triSurfaceField&lt; realx3 &gt;</a>, <a class="el" href="classpFlow_1_1triSurfaceField.html#a0f63a62676bba1a8a5cf891337d1d201">triSurfaceField&lt; uint32 &gt;</a>, <a class="el" href="classpFlow_1_1boundaryGrainInteraction.html#a0f63a62676bba1a8a5cf891337d1d201">boundaryGrainInteraction&lt; contactForceModel, geometryMotionModel &gt;</a>, <a class="el" href="classpFlow_1_1boundarySphereInteraction.html#a0f63a62676bba1a8a5cf891337d1d201">boundarySphereInteraction&lt; contactForceModel, geometryMotionModel &gt;</a>, <a class="el" href="classpFlow_1_1grainInteraction.html#a0f63a62676bba1a8a5cf891337d1d201">grainInteraction&lt; contactForceModel, geometryMotionModel, contactListType &gt;</a>, <a class="el" href="classpFlow_1_1sphereInteraction.html#a0f63a62676bba1a8a5cf891337d1d201">sphereInteraction&lt; contactForceModel, geometryMotionModel, contactListType &gt;</a>, <a class="el" href="classpFlow_1_1boundaryField.html#a0f63a62676bba1a8a5cf891337d1d201">boundaryField&lt; T, MemorySpace &gt;</a>, <a class="el" href="classpFlow_1_1boundaryField.html#a0f63a62676bba1a8a5cf891337d1d201">boundaryField&lt; T, void &gt;</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&lt; T, MemorySpace &gt;</a>, <a class="el" href="classpFlow_1_1periodicBoundaryField.html#a0f63a62676bba1a8a5cf891337d1d201">periodicBoundaryField&lt; T, MemorySpace &gt;</a>, <a class="el" href="classpFlow_1_1reflectiveBoundaryField.html#a0f63a62676bba1a8a5cf891337d1d201">reflectiveBoundaryField&lt; T, MemorySpace &gt;</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">&#9670;&nbsp;</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">&#9670;&nbsp;</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">&#9670;&nbsp;</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>