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

Public Member Functions

void addMetaserver (@NotNull final Metaserver metaserver)
 
 MetaserverProcessor (@NotNull final GuiStateManager guiStateManager, @Nullable final Path metaserverCacheFile, @NotNull final MetaserverModel metaserverModel)
 
void start ()
 
void stop ()
 

Private Member Functions

void disable ()
 
void enable ()
 
void updateMetaList (@NotNull final Metaserver metaserver)
 

Private Attributes

boolean enabled
 
final GuiStateListener guiStateListener
 
long lastQuery = nextQuery-MIN_UPDATE_INTERVAL*1000
 
final MetaserverModel metaserverModel
 
final Collection< Metaservermetaservers = new ArrayList<>()
 
long nextQuery = System.currentTimeMillis()
 
final Runnable runnable
 
final ServerCache serverCache
 
final Object sync = new Object()
 
Thread thread
 

Static Private Attributes

static final long EXPIRE_INTERVAL = 60L*60*24*2
 
static final int MIN_UPDATE_INTERVAL = 5*60
 
static final int UPDATE_INTERVAL = 15*60
 

Detailed Description

Asynchronously queries the metaserver and updates a MetaserverModel instance. Queries are performed regularly every UPDATE_INTERVAL. Queries are stopped when the server selection GUI is left. Automatically re-starts queries when the server selection GUI is shown again.

Author
Andreas Kirschbaum

Definition at line 42 of file MetaserverProcessor.java.

Constructor & Destructor Documentation

◆ MetaserverProcessor()

com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.MetaserverProcessor ( @NotNull final GuiStateManager  guiStateManager,
@Nullable final Path  metaserverCacheFile,
@NotNull final MetaserverModel  metaserverModel 
)

Creates a new instance.

Parameters
guiStateManagerthe gui state manager to watch
metaserverCacheFilethe metaserver cache file or
null
to not use a cache file
metaserverModelthe metaserver model instance to update

Definition at line 192 of file MetaserverProcessor.java.

References com.realtime.crossfire.jxclient.metaserver.MetaserverModel.begin(), com.realtime.crossfire.jxclient.metaserver.MetaserverModel.commit(), com.realtime.crossfire.jxclient.metaserver.ServerCache.getAll(), com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.guiStateListener, com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.metaserverModel, and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.serverCache.

Here is the call graph for this function:

Member Function Documentation

◆ addMetaserver()

void com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.addMetaserver ( @NotNull final Metaserver  metaserver)

◆ disable()

void com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.disable ( )
private

◆ enable()

void com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.enable ( )
private

◆ start()

void com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.start ( )

◆ stop()

void com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.stop ( )

◆ updateMetaList()

void com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.updateMetaList ( @NotNull final Metaserver  metaserver)
private

Member Data Documentation

◆ enabled

boolean com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.enabled
private

◆ EXPIRE_INTERVAL

final long com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.EXPIRE_INTERVAL = 60L*60*24*2
staticprivate

The time (in seconds) to forget about old metaserver entries.

Definition at line 57 of file MetaserverProcessor.java.

Referenced by com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.updateMetaList().

◆ guiStateListener

final GuiStateListener com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.guiStateListener
private

The GuiStateListener for detecting established or dropped connections.

Definition at line 146 of file MetaserverProcessor.java.

Referenced by com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.MetaserverProcessor().

◆ lastQuery

long com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.lastQuery = nextQuery-MIN_UPDATE_INTERVAL*1000
private

The timestamp at which the last query was done.

Definition at line 102 of file MetaserverProcessor.java.

◆ metaserverModel

final MetaserverModel com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.metaserverModel
private

◆ metaservers

final Collection<Metaserver> com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.metaservers = new ArrayList<>()
private

◆ MIN_UPDATE_INTERVAL

final int com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.MIN_UPDATE_INTERVAL = 5*60
staticprivate

The minimal update-interval in seconds.

Definition at line 52 of file MetaserverProcessor.java.

◆ nextQuery

long com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.nextQuery = System.currentTimeMillis()
private

◆ runnable

final Runnable com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.runnable
private

◆ serverCache

final ServerCache com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.serverCache
private

◆ sync

final Object com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.sync = new Object()
private

◆ thread

Thread com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.thread
private

◆ UPDATE_INTERVAL

final int com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.UPDATE_INTERVAL = 15*60
staticprivate

The regular update-interval in seconds.

Definition at line 47 of file MetaserverProcessor.java.


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