Crossfire JXClient, Trunk
|
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< Metaserver > | metaservers = 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 |
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.
Definition at line 42 of file MetaserverProcessor.java.
com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.MetaserverProcessor | ( | @NotNull final GuiStateManager | guiStateManager, |
@Nullable final Path | metaserverCacheFile, | ||
@NotNull final MetaserverModel | metaserverModel | ||
) |
Creates a new instance.
guiStateManager | the gui state manager to watch |
metaserverCacheFile | the metaserver cache file or null
|
metaserverModel | the 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.
void com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.addMetaserver | ( | @NotNull final Metaserver | metaserver | ) |
Adds a metaserver to track.
metaserver | the metaserver instance to query |
Definition at line 205 of file MetaserverProcessor.java.
References com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.metaservers, and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.sync.
Referenced by com.realtime.crossfire.jxclient.main.JXClient.JXClient(), and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessorTest.start_queryMetaserver_updatesMetaserverModel().
|
private |
Disables periodic re-queries.
Definition at line 251 of file MetaserverProcessor.java.
References com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.enabled, and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.sync.
|
private |
Enables periodic re-queries.
Definition at line 261 of file MetaserverProcessor.java.
References com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.enabled, com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.nextQuery, and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.sync.
void com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.start | ( | ) |
Starts querying the added metaservers.
Definition at line 214 of file MetaserverProcessor.java.
References com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.nextQuery, com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.runnable, com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.sync, and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.thread.
Referenced by com.realtime.crossfire.jxclient.main.JXClient.JXClient(), and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessorTest.start_queryMetaserver_updatesMetaserverModel().
void com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.stop | ( | ) |
Stops querying the added metaservers.
Definition at line 229 of file MetaserverProcessor.java.
References com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.sync, and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.thread.
Referenced by com.realtime.crossfire.jxclient.metaserver.MetaserverProcessorTest.start_queryMetaserver_updatesMetaserverModel().
|
private |
Queries one metaserver and updates metaserverModel accordingly.
metaserver | the metaserver |
Definition at line 273 of file MetaserverProcessor.java.
References com.realtime.crossfire.jxclient.metaserver.MetaserverModel.addMetaserverEntry(), com.realtime.crossfire.jxclient.metaserver.MetaserverModel.begin(), com.realtime.crossfire.jxclient.metaserver.MetaserverModel.commit(), com.realtime.crossfire.jxclient.metaserver.ServerCache.expire(), com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.EXPIRE_INTERVAL, com.realtime.crossfire.jxclient.metaserver.ServerCache.getAll(), com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.metaserverModel, com.realtime.crossfire.jxclient.metaserver.ServerCache.put(), com.realtime.crossfire.jxclient.metaserver.ServerCache.save(), and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.serverCache.
|
private |
Whether periodic queries are enabled.
Definition at line 92 of file MetaserverProcessor.java.
Referenced by com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.disable(), and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.enable().
|
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().
|
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().
|
private |
The timestamp at which the last query was done.
Definition at line 102 of file MetaserverProcessor.java.
|
private |
The MetaserverModel instance to update.
Definition at line 69 of file MetaserverProcessor.java.
Referenced by com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.MetaserverProcessor(), and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.updateMetaList().
|
private |
The Metaserver instances to query.
Definition at line 63 of file MetaserverProcessor.java.
Referenced by com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.addMetaserver().
|
staticprivate |
The minimal update-interval in seconds.
Definition at line 52 of file MetaserverProcessor.java.
|
private |
The timestamp at which a query is done.
Definition at line 97 of file MetaserverProcessor.java.
Referenced by com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.enable(), and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.start().
|
private |
The query Thread.
Definition at line 108 of file MetaserverProcessor.java.
Referenced by com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.start().
|
private |
The cached metaserver entries.
Definition at line 75 of file MetaserverProcessor.java.
Referenced by com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.MetaserverProcessor(), and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.updateMetaList().
|
private |
The object used for synchronization.
Definition at line 81 of file MetaserverProcessor.java.
Referenced by com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.addMetaserver(), com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.disable(), com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.enable(), com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.start(), and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.stop().
|
private |
The thread for runnable or
when not running.
Definition at line 87 of file MetaserverProcessor.java.
Referenced by com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.start(), and com.realtime.crossfire.jxclient.metaserver.MetaserverProcessor.stop().
|
staticprivate |
The regular update-interval in seconds.
Definition at line 47 of file MetaserverProcessor.java.