<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>mrpt::utils::CObserver Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> > <b>C++ reference</b> </div> <div align="right"> <a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a> </div> <!-- Generated by Doxygen 1.7.5 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <div class="left"> <form id="FSearchBox" action="search.php" method="get"> <img id="MSearchSelect" src="search/mag.png" alt=""/> <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"/> </form> </div><div class="right"></div> </div> </li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a> </li> <li class="navelem"><a class="el" href="namespacemrpt_1_1utils.html">utils</a> </li> <li class="navelem"><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html">CObserver</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pri-methods">Private Member Functions</a> | <a href="#pri-attribs">Private Attributes</a> | <a href="#friends">Friends</a> </div> <div class="headertitle"> <div class="title">mrpt::utils::CObserver Class Reference<div class="ingroups"><a class="el" href="group__mrpt__base__grp.html">[mrpt-base]</a></div></div> </div> </div> <div class="contents"> <!-- doxytag: class="mrpt::utils::CObserver" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Inherit from this class to get notified about events from any <a class="el" href="classmrpt_1_1utils_1_1_c_observable.html" title="Inherit from this class for those objects capable of being observed by a CObserver class...">CObservable</a> object after subscribing to it. </p> <p>The main methods in this class are:</p> <ul> <li><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#aedaffad1d99185258e2caac8b6cc50df" title="Starts the subscription of this observer to the given object.">observeBegin()</a>: To be called to start listening at a given object.</li> <li><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#ac2d5773bafc7abe5e31aa16ccb7e665c" title="This virtual function will be called upon receive of any event after starting listening at any CObser...">OnEvent()</a>: Virtual functions to be implemented in your child class to receive all the notifications.</li> </ul> <p>Note that if custom (child) <a class="el" href="classmrpt_1_1utils_1_1mrpt_event.html" title="The basic event type for the observer-observable pattern in MRPT.">mrptEvent</a> classes are used, you can tell between them in runtime with "dynamic_cast<>()".</p> <dl class="note"><dt><b>Note:</b></dt><dd>The pairs <a class="el" href="classmrpt_1_1utils_1_1_c_observable.html" title="Inherit from this class for those objects capable of being observed by a CObserver class...">CObservable</a> / <a class="el" href="classmrpt_1_1utils_1_1_c_observer.html" title="Inherit from this class to get notified about events from any CObservable object after subscribing to...">CObserver</a> automatically notify each other the destruction of any of them, effectively ending the subscription of events.</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_observable.html" title="Inherit from this class for those objects capable of being observed by a CObserver class...">CObservable</a>, <a class="el" href="classmrpt_1_1utils_1_1mrpt_event.html" title="The basic event type for the observer-observable pattern in MRPT.">mrptEvent</a> </dd></dl> </div> <p><code>#include <<a class="el" href="_c_observer_8h_source.html">mrpt/utils/CObserver.h</a>></code></p> <div class="dynheader"> Inheritance diagram for mrpt::utils::CObserver:</div> <div class="dyncontent"> <div class="center"><img src="classmrpt_1_1utils_1_1_c_observer__inherit__graph.png" border="0" usemap="#mrpt_1_1utils_1_1_c_observer_inherit__map" alt="Inheritance graph"/></div> <map name="mrpt_1_1utils_1_1_c_observer_inherit__map" id="mrpt_1_1utils_1_1_c_observer_inherit__map"> <area shape="rect" id="node3" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map_feature_extractor.html" title="A class for detecting features from occupancy grid maps." alt="" coords="5,80,320,107"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="classmrpt_1_1utils_1_1_c_observer-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#ae872779a2d0bb81b2774808ad757a49f">CObserver</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#a4e642edf0dd5c5b7b1355cd144d909ba">~CObserver</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#aedaffad1d99185258e2caac8b6cc50df">observeBegin</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_observable.html">CObservable</a> &obj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Starts the subscription of this observer to the given object. <a href="#aedaffad1d99185258e2caac8b6cc50df"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#abb6f34eb0b20b27d937c00d2010e53e0">observeEnd</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_observable.html">CObservable</a> &obj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Ends the subscription of this observer to the given object (note that there is no need to call this method, since the destruction of the first of observer/observed will put an end to the process. <a href="#abb6f34eb0b20b27d937c00d2010e53e0"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#ac2d5773bafc7abe5e31aa16ccb7e665c">OnEvent</a> (const <a class="el" href="classmrpt_1_1utils_1_1mrpt_event.html">mrptEvent</a> &e)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This virtual function will be called upon receive of any event after starting listening at any <a class="el" href="classmrpt_1_1utils_1_1_c_observable.html" title="Inherit from this class for those objects capable of being observed by a CObserver class...">CObservable</a> object. <a href="#ac2d5773bafc7abe5e31aa16ccb7e665c"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pri-methods"></a> Private Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#a98fb4178e225c050857bb3fc9c735c11">internal_on_event</a> (const <a class="el" href="classmrpt_1_1utils_1_1mrpt_event.html">mrptEvent</a> &e)</td></tr> <tr><td colspan="2"><h2><a name="pri-attribs"></a> Private Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1set.html">std::set</a>< <a class="el" href="classmrpt_1_1utils_1_1_c_observable.html">CObservable</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#a21a6f7f23518790feba9771ec7cba05a">m_subscribed</a></td></tr> <tr><td colspan="2"><h2><a name="friends"></a> Friends</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#a4dff6a30296788786a732d228e2d0eff">CObservable</a></td></tr> </table> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="ae872779a2d0bb81b2774808ad757a49f"></a><!-- doxytag: member="mrpt::utils::CObserver::CObserver" ref="ae872779a2d0bb81b2774808ad757a49f" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">mrpt::utils::CObserver::CObserver </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a4e642edf0dd5c5b7b1355cd144d909ba"></a><!-- doxytag: member="mrpt::utils::CObserver::~CObserver" ref="a4e642edf0dd5c5b7b1355cd144d909ba" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual mrpt::utils::CObserver::~CObserver </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a98fb4178e225c050857bb3fc9c735c11"></a><!-- doxytag: member="mrpt::utils::CObserver::internal_on_event" ref="a98fb4178e225c050857bb3fc9c735c11" args="(const mrptEvent &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::utils::CObserver::internal_on_event </td> <td>(</td> <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1mrpt_event.html">mrptEvent</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="aedaffad1d99185258e2caac8b6cc50df"></a><!-- doxytag: member="mrpt::utils::CObserver::observeBegin" ref="aedaffad1d99185258e2caac8b6cc50df" args="(CObservable &obj)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::utils::CObserver::observeBegin </td> <td>(</td> <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_observable.html">CObservable</a> & </td> <td class="paramname"><em>obj</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Starts the subscription of this observer to the given object. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#abb6f34eb0b20b27d937c00d2010e53e0" title="Ends the subscription of this observer to the given object (note that there is no need to call this m...">observeEnd</a> </dd></dl> </div> </div> <a class="anchor" id="abb6f34eb0b20b27d937c00d2010e53e0"></a><!-- doxytag: member="mrpt::utils::CObserver::observeEnd" ref="abb6f34eb0b20b27d937c00d2010e53e0" args="(CObservable &obj)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mrpt::utils::CObserver::observeEnd </td> <td>(</td> <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_observable.html">CObservable</a> & </td> <td class="paramname"><em>obj</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Ends the subscription of this observer to the given object (note that there is no need to call this method, since the destruction of the first of observer/observed will put an end to the process. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#aedaffad1d99185258e2caac8b6cc50df" title="Starts the subscription of this observer to the given object.">observeBegin</a> </dd></dl> </div> </div> <a class="anchor" id="ac2d5773bafc7abe5e31aa16ccb7e665c"></a><!-- doxytag: member="mrpt::utils::CObserver::OnEvent" ref="ac2d5773bafc7abe5e31aa16ccb7e665c" args="(const mrptEvent &e)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void mrpt::utils::CObserver::OnEvent </td> <td>(</td> <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1mrpt_event.html">mrptEvent</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [protected, pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>This virtual function will be called upon receive of any event after starting listening at any <a class="el" href="classmrpt_1_1utils_1_1_c_observable.html" title="Inherit from this class for those objects capable of being observed by a CObserver class...">CObservable</a> object. </p> <p>Implemented in <a class="el" href="classmrpt_1_1slam_1_1_c_occupancy_grid_map_feature_extractor.html#a6832a14731dd06a3693108e0867dfe3b">mrpt::slam::COccupancyGridMapFeatureExtractor</a>.</p> </div> </div> <hr/><h2>Friends And Related Function Documentation</h2> <a class="anchor" id="a4dff6a30296788786a732d228e2d0eff"></a><!-- doxytag: member="mrpt::utils::CObserver::CObservable" ref="a4dff6a30296788786a732d228e2d0eff" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">friend class <a class="el" href="classmrpt_1_1utils_1_1_c_observable.html">CObservable</a><code> [friend]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_observer_8h_source.html#l00054">54</a> of file <a class="el" href="_c_observer_8h_source.html">CObserver.h</a>.</p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="a21a6f7f23518790feba9771ec7cba05a"></a><!-- doxytag: member="mrpt::utils::CObserver::m_subscribed" ref="a21a6f7f23518790feba9771ec7cba05a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classstd_1_1set.html">std::set</a><<a class="el" href="classmrpt_1_1utils_1_1_c_observable.html">CObservable</a>*> <a class="el" href="classmrpt_1_1utils_1_1_c_observer.html#a21a6f7f23518790feba9771ec7cba05a">mrpt::utils::CObserver::m_subscribed</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_c_observer_8h_source.html#l00068">68</a> of file <a class="el" href="_c_observer_8h_source.html">CObserver.h</a>.</p> </div> </div> </div> <br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150"> </td></tr> </table> </body></html>