|
The Assimilation Monitoring Project
|
Class for heartbeat Listeners - We listen for heartbeats and time out those which are late. More...
|
Data Structures | |
| struct | _HbListener |
| This is the base HbListener class. object - which listens for heartbeats from a particular sender. More... | |
Macros | |
| #define | ONESEC 1000000 |
Functions | |
| FSTATIC void | _hblistener_addlist (HbListener *self) |
| Add an HbListener to our global list of HBListeners, and unref (and neuter) any old HbListeners listening to this same address. More... | |
| FSTATIC void | _hblistener_dellist (HbListener *self) |
| Remove an HbListener from our global list of HBListeners. More... | |
| HbListener * | hblistener_find_by_address (const NetAddr *which) |
| Find the listener that's listening to a particular address. More... | |
| FSTATIC void | _hblistener_checktimeouts (gboolean urgent) |
| Function called when it's time to see if anyone timed out... More... | |
| FSTATIC gboolean | _hblistener_gsourcefunc (gpointer ignored) |
| A GSourceFunc to be used with g_timeout_add_seconds() More... | |
| FSTATIC gboolean | _hblistener_got_frameset (Listener *self, FrameSet *fs, NetAddr *srcaddr) |
| Function called when a heartbeat FrameSet class (fs) arrived from the given NetAddr class (srcaddr) More... | |
| FSTATIC void | _hblistener_notify_function (gpointer ignoreddata) |
| FSTATIC void | hblistener_shutdown (void) |
| Shuts down all our hblisteners... More... | |
| FSTATIC void | _hblistener_finalize (AssimObj *self) |
| Finalize an HbListener. More... | |
| HbListener * | hblistener_new (NetAddr *listenaddr, ConfigContext *cfg, gsize objsize) |
| Construct a new HbListener - setting up GSource and timeout data structures for it. More... | |
| FSTATIC void | _hblistener_set_deadtime (HbListener *self,guint64 deadtime) |
| Set deadtime. More... | |
| FSTATIC guint64 | _hblistener_get_deadtime (HbListener *self) |
| Return deadtime. More... | |
| FSTATIC void | _hblistener_set_warntime (HbListener *self,guint64 warntime) |
| Set warntime. More... | |
| FSTATIC guint64 | _hblistener_get_warntime (HbListener *self) |
| Return warntime. More... | |
| FSTATIC void | hblistener_unlisten (NetAddr *unlistenaddr) |
| Stop expecting (listening for) heartbeats from a particular address. More... | |
| FSTATIC void | _hblistener_set_deadtime_callback (HbListener *self, void(*callback)(HbListener *who)) |
| Call to set a callback to be called when a node apparently dies. More... | |
| FSTATIC void | _hblistener_set_heartbeat_callback (HbListener *self, void(*callback)(HbListener *who)) |
| Call to set a callback to be called when a heartbeat is received. More... | |
| FSTATIC void | _hblistener_set_warntime_callback (HbListener *self, void(*callback)(HbListener *who, guint64 howlate)) |
| Call to set a callback to be called when a node passes warntime before heartbeating again. More... | |
| FSTATIC void | _hblistener_set_comealive_callback (HbListener *self, void(*callback)(HbListener *who, guint64 howlate)) |
| Call to set a callback to be called when a node passes deadtime but heartbeats again. More... | |
| FSTATIC void | hblistener_set_martian_callback (void(*callback)(NetAddr *who)) |
| Call to set a callback to be called when an unrecognized node sends us a heartbeat. More... | |
Class for heartbeat Listeners - We listen for heartbeats and time out those which are late.
| #define ONESEC 1000000 |
Definition at line 61 of file hblistener.c.
Referenced by _hblistener_checktimeouts().
| FSTATIC void _hblistener_addlist | ( | HbListener * | self | ) |
Add an HbListener to our global list of HBListeners, and unref (and neuter) any old HbListeners listening to this same address.
| [in] | self | The listener to add |
Definition at line 66 of file hblistener.c.
References _hblistener_dellist(), _hblistener_gsourcefunc(), _hblistener_notify_function(), hblistener_find_by_address(), and REF2.
Referenced by hblistener_new().


| FSTATIC void _hblistener_checktimeouts | ( | gboolean | urgent | ) |
Function called when it's time to see if anyone timed out...
| [in] | urgent | True if you want it checked now anyway... |
Definition at line 110 of file hblistener.c.
References _HbListener::_deadtime_callback, CASTTOCLASS, g_get_real_time(), HbPacketsBeingReceived, HbPacketsTimedOut, cma.cma::listener, _HbListener::nexttime, ONESEC, and _HbListener::status.
Referenced by _hblistener_gsourcefunc().


| FSTATIC void _hblistener_dellist | ( | HbListener * | self | ) |
Remove an HbListener from our global list of HBListeners.
| [in] | self | The listener to remove from our list |
Definition at line 83 of file hblistener.c.
References UNREF2.
Referenced by _hblistener_addlist(), and hblistener_unlisten().

Finalize an HbListener.
| [in,out] | self | Listener to finalize |
Definition at line 219 of file hblistener.c.
References __FUNCTION__, _listener_finalize(), CASTTOCLASS, DEBUGMSG3, _HbListener::listenaddr, and UNREF.
Referenced by hblistener_new().


| FSTATIC guint64 _hblistener_get_deadtime | ( | HbListener * | self | ) |
Return deadtime.
Definition at line 281 of file hblistener.c.
Referenced by hblistener_new().

| FSTATIC guint64 _hblistener_get_warntime | ( | HbListener * | self | ) |
Return warntime.
Definition at line 297 of file hblistener.c.
Referenced by hblistener_new().

Function called when a heartbeat FrameSet class (fs) arrived from the given NetAddr class (srcaddr)
Definition at line 143 of file hblistener.c.
References _HbListener::_comealive_callback, _HbListener::_expected_interval, _HbListener::_heartbeat_callback, _HbListener::_warn_interval, _HbListener::_warntime_callback, _NetAddr::baseclass, FMT_64BIT, g_get_real_time(), hblistener_find_by_address(), HbPacketsBeingReceived, HbPacketsTimedOut, _HbListener::nexttime, _HbListener::status, _AssimObj::toString, UNREF, and _HbListener::warntime.
Referenced by hblistener_new().


| FSTATIC gboolean _hblistener_gsourcefunc | ( | gpointer | ignored | ) |
A GSourceFunc to be used with g_timeout_add_seconds()
| ignored | [ignored] Ignored |
Definition at line 134 of file hblistener.c.
References _hblistener_checktimeouts().
Referenced by _hblistener_addlist().


| FSTATIC void _hblistener_notify_function | ( | gpointer | ignored | ) |
| ignored | [unused] Unused |
Definition at line 191 of file hblistener.c.
References hblistener_shutdown().
Referenced by _hblistener_addlist().


| FSTATIC void _hblistener_set_comealive_callback | ( | HbListener * | self, |
| void(*)(HbListener *who, guint64 howlate) | callback | ||
| ) |
Call to set a callback to be called when a node passes deadtime but heartbeats again.
Definition at line 342 of file hblistener.c.
Referenced by hblistener_new().

| FSTATIC void _hblistener_set_deadtime | ( | HbListener * | self, |
| guint64 | deadtime | ||
| ) |
Set deadtime.
| [in,out] | self | Object to set deadtime for |
| [in] | deadtime | deadtime to set in usec |
Definition at line 270 of file hblistener.c.
References g_get_real_time().
Referenced by hblistener_new().


| FSTATIC void _hblistener_set_deadtime_callback | ( | HbListener * | self, |
| void(*)(HbListener *who) | callback | ||
| ) |
Call to set a callback to be called when a node apparently dies.
Definition at line 321 of file hblistener.c.
Referenced by hblistener_new().

| FSTATIC void _hblistener_set_heartbeat_callback | ( | HbListener * | self, |
| void(*)(HbListener *who) | callback | ||
| ) |
Call to set a callback to be called when a heartbeat is received.
Definition at line 328 of file hblistener.c.
Referenced by hblistener_new().

| FSTATIC void _hblistener_set_warntime | ( | HbListener * | self, |
| guint64 | warntime | ||
| ) |
Set warntime.
| [in,out] | self | Object to set warntime for |
| [in] | warntime | warntime to set in usec |
Definition at line 288 of file hblistener.c.
References g_get_real_time().
Referenced by hblistener_new().


| FSTATIC void _hblistener_set_warntime_callback | ( | HbListener * | self, |
| void(*)(HbListener *who, guint64 howlate) | callback | ||
| ) |
Call to set a callback to be called when a node passes warntime before heartbeating again.
Definition at line 335 of file hblistener.c.
Referenced by hblistener_new().

| HbListener* hblistener_find_by_address | ( | const NetAddr * | which | ) |
Find the listener that's listening to a particular address.
Definition at line 95 of file hblistener.c.
References CASTTOCLASS, _NetAddr::equal, _HbListener::listenaddr, and cma.cma::listener.
Referenced by _hblistener_addlist(), _hblistener_got_frameset(), and hblistener_unlisten().

| HbListener* hblistener_new | ( | NetAddr * | listenaddr, |
| ConfigContext * | cfg, | ||
| gsize | objsize | ||
| ) |
Construct a new HbListener - setting up GSource and timeout data structures for it.
This can be used directly or by derived classes.
| [in] | listenaddr | Address to listen to |
| [in,out] | cfg | Configuration context |
| [in] | objsize | size of HbListener structure (0 for sizeof(HbListener)) |
Definition at line 232 of file hblistener.c.
References _AssimObj::_finalize, _hblistener_addlist(), _hblistener_finalize(), _hblistener_get_deadtime(), _hblistener_get_warntime(), _hblistener_got_frameset(), _hblistener_set_comealive_callback(), _hblistener_set_deadtime(), _hblistener_set_deadtime_callback(), _hblistener_set_heartbeat_callback(), _hblistener_set_warntime(), _hblistener_set_warntime_callback(), _Listener::baseclass, BINDDEBUG, CASTTOCLASS, DEFAULT_DEADTIME, _HbListener::get_deadtime, _HbListener::get_warntime, _Listener::got_frameset, HbPacketsBeingReceived, _HbListener::listenaddr, listener_new(), proj_class_register_subclassed(), REF, _HbListener::set_comealive_callback, _HbListener::set_deadtime, _HbListener::set_deadtime_callback, _HbListener::set_heartbeat_callback, _HbListener::set_warntime, _HbListener::set_warntime_callback, and _HbListener::status.
Referenced by _real_hblistener_new(), and nanoobey_expecthb().


Call to set a callback to be called when an unrecognized node sends us a heartbeat.
Definition at line 349 of file hblistener.c.
Referenced by nano_start_full().

| FSTATIC void hblistener_shutdown | ( | void | ) |
Shuts down all our hblisteners...
Definition at line 199 of file hblistener.c.
References CASTTOCLASS, cma.cma::listener, and UNREF2.
Referenced by _hblistener_notify_function(), and nano_shutdown().

Stop expecting (listening for) heartbeats from a particular address.
| [in,out] | unlistenaddr | Listener to remove from list |
Definition at line 309 of file hblistener.c.
References _hblistener_dellist(), hblistener_find_by_address(), and cma.cma::listener.
Referenced by nanoobey_stopexpecthb().

