Classes | Signals | Public Member Functions | Protected Types | Protected Slots | Protected Member Functions | Protected Attributes | Static Protected Attributes
RefreshingThread Class Reference

List of all members.

Classes

class  MasterClientInfo

Signals

void block ()
void finishedQueryingMaster (MasterClient *master)
void sleepingModeEnter ()
void sleepingModeExit ()

Public Member Functions

void quit ()
void registerMaster (MasterClient *pMaster)
void registerServer (Server *server)
void run ()
void setDelayBetweenResends (int delay)

Protected Types

typedef QHash< MasterClient
*, MasterClientInfo * > 
MasterHashtable
typedef QHash< MasterClient
*, MasterClientInfo * >
::iterator 
MasterHashtableIt

Protected Slots

void masterFinishedRefreshing (MasterClient *pMaster)

Protected Member Functions

void attemptTimeoutMasters ()
void gotoSleep ()
bool isAnythingToRefresh () const
ServerobtainServerFromBatch (ServerBatch &batch, const QHostAddress &address, quint16 port)
void readPendingDatagrams ()
void sendMasterQueries ()
unsigned sendQueriesForBatch (ServerBatch &batch, int resetDelay, bool firstQuery)
void sendServerQueries ()
bool shouldBlockRefreshingProcess () const
 Returns true if there are any master clients or non-custom servers registered.
void unregisterMaster (MasterClient *pMaster)

Protected Attributes

QTime batchTime
bool bKeepRunning
int delayBetweenResends
QList< ServerBatchregisteredBatches
MasterHashtable registeredMasters
QSet< Server * > registeredServers
QUdpSocket * socket
QList< Server * > unbatchedServers
QSet< MasterClient * > unchallengedMasters
QMutex thisMutex
QWaitCondition thisWaitCondition

Static Protected Attributes

static const int MASTER_SERVER_TIMEOUT_DELAY = 10000

Member Function Documentation

void RefreshingThread::block ( ) [signal]

Emitted when a master client of non-custom server is registered.

Server * RefreshingThread::obtainServerFromBatch ( ServerBatch batch,
const QHostAddress &  address,
quint16  port 
) [protected]
Returns:
NULL if server of given address:port is not in the batch.
void RefreshingThread::quit ( )

This will set bKeepRunning to false which will tell the refreshing thread to exit gracefully.

void RefreshingThread::registerMaster ( MasterClient pMaster)

Registers a new master server to be queried. All masters are stored in a hash table, therefore it's impossible to register the same object twice.

void RefreshingThread::registerServer ( Server server)

Registers a new server to be queried. All servers are stored in a hash table, therefore it's impossible to register the same object twice.

unsigned RefreshingThread::sendQueriesForBatch ( ServerBatch batch,
int  resetDelay,
bool  firstQuery 
) [protected]
Returns:
Query slots used by this batch.
void RefreshingThread::setDelayBetweenResends ( int  delay) [inline]

Sets delay between subsequent queries send to the servers. Default value is 1000. Minimum value is 100.

void RefreshingThread::sleepingModeEnter ( ) [signal]

Emitted when refreshing thread doesn't have anything more to do and goes into sleeping mode.

void RefreshingThread::sleepingModeExit ( ) [signal]

Emitted when refreshing thread wakes up from sleeping mode and begins refreshing work.


Member Data Documentation

This will keep list of ALL servers to make sure that no server is registered twice.

QMutex RefreshingThread::thisMutex [protected]

Mutex used by methods of this class.

QWaitCondition RefreshingThread::thisWaitCondition [protected]

Wait condition used by the methods of this class. Used to wake up the sleeping thread after the registerServer() is called.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator