Elexis API documentation
Version 2.1.6 as of December 11 2011

ch.elexis.actions
Class Heartbeat

java.lang.Object
  extended by ch.elexis.actions.Heartbeat

public class Heartbeat
extends java.lang.Object

Heartbeat is an event source, that fires events at user-definable intervals to all HeartListeners. All actions that must be repeated regularly should be registered as HeartListener. They will all be called at about the specified rate, but not in a guaranteed particular order and not necessarily at exactly identical intervals. Heartbeat löst das Pinger-Konzept ab. Der Heartbeat ist ein Singleton, das alle Hub.localCfg.get(heartbeatrate,30) Sekunden einen Event feuert. Wer reglmässige Aktionen durchführen will, kann sich als HeartbeatListener registrieren. Dieses Konzept hat gegenüber individuellen update-Threads den Vorteil, dass die Netzwerk- und Datenbankbelastung, sowie die Zahl der gleichzeitig laufenden Threads limitiert wird. Der Heartbeat sorgt dafür, dass die listener der Reihe nach (aber ncht in einer definierten Reihenfolge) aufgerufen werden. The client registering a listener can define the frequency, whether the listener should be called at every single heart beat or at a lower frequency.

Author:
gerry

Nested Class Summary
static interface Heartbeat.HeartListener
           
 
Field Summary
static int FREQUENCY_HIGH
          Registering a listener using FREQUENCY_HIGH, it is called at every single heartbeat.
static int FREQUENCY_LOW
          Registering a listener using FREQUENCY_LOW, it is called at every 16th heartbeat.
static int FREQUENCY_MEDIUM
          Registering a listener using FREQUENCY_MEDIUM, it is called at every 4th heartbeat.
 
Method Summary
 void addListener(Heartbeat.HeartListener listen)
          Einen Listener registrieren.
 void addListener(Heartbeat.HeartListener listen, int frequency)
          Add listener using the specified frequency.
static Heartbeat getInstance()
          Das Singleton holen
 void removeListener(Heartbeat.HeartListener listen)
          Einen Listener wieder austragen
 void resume(boolean immediately)
          Heartbeat (wieder) laufen lassen.
 void stop()
          Heartbeat stoppen (kann dann nicht mehr gestartet werden)
 void suspend()
          Heartbeat aussetzen (geht im Hintergrund weiter, wird aber nicht mehr weitergeleitet)
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FREQUENCY_HIGH

public static final int FREQUENCY_HIGH
Registering a listener using FREQUENCY_HIGH, it is called at every single heartbeat.

See Also:
Constant Field Values

FREQUENCY_MEDIUM

public static final int FREQUENCY_MEDIUM
Registering a listener using FREQUENCY_MEDIUM, it is called at every 4th heartbeat.

See Also:
Constant Field Values

FREQUENCY_LOW

public static final int FREQUENCY_LOW
Registering a listener using FREQUENCY_LOW, it is called at every 16th heartbeat.

See Also:
Constant Field Values
Method Detail

getInstance

public static Heartbeat getInstance()
Das Singleton holen

Returns:
den Heartbeat der Anwendung

resume

public void resume(boolean immediately)
Heartbeat (wieder) laufen lassen.

Parameters:
immediately - true: Sofort einen ersten beat losschicken, false: im normalen Rhythmus bleiben.

suspend

public void suspend()
Heartbeat aussetzen (geht im Hintergrund weiter, wird aber nicht mehr weitergeleitet)


stop

public void stop()
Heartbeat stoppen (kann dann nicht mehr gestartet werden)


addListener

public void addListener(Heartbeat.HeartListener listen)
Einen Listener registrieren. Achtung: Muss unbedingt mit removeListener deregistriert werden Calls addListener(listen, FREQUENCY_HIGH)

Parameters:
listen - der Listener

addListener

public void addListener(Heartbeat.HeartListener listen,
                        int frequency)
Add listener using the specified frequency. Must be de-regsitered again using removeListener

Parameters:
listener -
frequency - the frequency to call this listener. One of FREQUENCY_HIGH, FREQUENCY_MEDIUM, FREQUENCY_LOW

removeListener

public void removeListener(Heartbeat.HeartListener listen)
Einen Listener wieder austragen

Parameters:
listen -

Elexis API documentation
Version 2.1.6 as of December 11 2011

Copyright 2005-2011 by Gerry Weirich, Elexis