Crossfire JXClient, Trunk
Public Member Functions | Private Attributes | List of all members
com.realtime.crossfire.jxclient.items.EventScheduler Class Reference
Collaboration diagram for com.realtime.crossfire.jxclient.items.EventScheduler:
Collaboration graph

Public Member Functions

 EventScheduler (final int delay, final int afterEventDelay, @NotNull final Runnable eventSchedulerCallback)
 
void start ()
 
void trigger ()
 

Private Attributes

final int afterEventDelay
 
final int delay
 
final Runnable eventSchedulerCallback
 
long nextAction
 
long nextActionNotBefore = System.currentTimeMillis()
 
final Runnable runnable
 
final Object sync = new Object()
 
final Thread thread
 

Detailed Description

A scheduler for asynchronous event notifications. Notifications are triggered by calling trigger(). Notifications are delivered by calling the event scheduler callback of eventSchedulerCallback. This callback is called delay after the last call to trigger() but not faster than once per eventSchedulerCallback.

Author
Andreas Kirschbaum

Definition at line 35 of file EventScheduler.java.

Constructor & Destructor Documentation

◆ EventScheduler()

com.realtime.crossfire.jxclient.items.EventScheduler.EventScheduler ( final int  delay,
final int  afterEventDelay,
@NotNull final Runnable  eventSchedulerCallback 
)

Member Function Documentation

◆ start()

void com.realtime.crossfire.jxclient.items.EventScheduler.start ( )

Activates this instance.

Definition at line 139 of file EventScheduler.java.

References com.realtime.crossfire.jxclient.items.EventScheduler.thread.

Referenced by com.realtime.crossfire.jxclient.items.AbstractItemView.AbstractItemView().

Here is the caller graph for this function:

◆ trigger()

void com.realtime.crossfire.jxclient.items.EventScheduler.trigger ( )

Member Data Documentation

◆ afterEventDelay

final int com.realtime.crossfire.jxclient.items.EventScheduler.afterEventDelay
private

The minimum delay between two eventSchedulerCallback notifications.

Definition at line 47 of file EventScheduler.java.

Referenced by com.realtime.crossfire.jxclient.items.EventScheduler.EventScheduler().

◆ delay

final int com.realtime.crossfire.jxclient.items.EventScheduler.delay
private

◆ eventSchedulerCallback

final Runnable com.realtime.crossfire.jxclient.items.EventScheduler.eventSchedulerCallback
private

◆ nextAction

long com.realtime.crossfire.jxclient.items.EventScheduler.nextAction
private

The timestamp for the next notification. Set to

0

when not active.

Definition at line 72 of file EventScheduler.java.

Referenced by com.realtime.crossfire.jxclient.items.EventScheduler.trigger().

◆ nextActionNotBefore

long com.realtime.crossfire.jxclient.items.EventScheduler.nextActionNotBefore = System.currentTimeMillis()
private

The minimum timestamp for the next notification.

Definition at line 77 of file EventScheduler.java.

◆ runnable

final Runnable com.realtime.crossfire.jxclient.items.EventScheduler.runnable
private

The Runnable delivering notifications through eventSchedulerCallback.

Definition at line 84 of file EventScheduler.java.

Referenced by com.realtime.crossfire.jxclient.items.EventScheduler.EventScheduler().

◆ sync

final Object com.realtime.crossfire.jxclient.items.EventScheduler.sync = new Object()
private

The object used to synchronize access to nextAction and nextActionNotBefore.

Definition at line 60 of file EventScheduler.java.

Referenced by com.realtime.crossfire.jxclient.items.EventScheduler.trigger().

◆ thread

final Thread com.realtime.crossfire.jxclient.items.EventScheduler.thread
private

The documentation for this class was generated from the following file: