/* * File: onlinelist.h * Author: dipesh * * Created on August 2, 2010, 1:12 AM */ #ifndef _ONLINELIST_H #define _ONLINELIST_H #include #include #include "utils/mutex.h" struct SDL_Thread; /** * Update progress window GUI * * \ingroup GUI */ class OnlineList { public: /** * Constructor. */ OnlineList(); /** * Destructor */ ~OnlineList(); void logic(); std::set &getOnlinePlayers() { return mOnlinePlayers; } void setAllowUpdate(bool n) { mAllowUpdate = n; } private: void download(); /** * The thread function that download the files. */ static int downloadThread(void *ptr); enum DownloadStatus { UPDATE_ERROR = 0, UPDATE_COMPLETE, UPDATE_LIST }; /** A thread that use libcurl to download updates. */ SDL_Thread *mThread; /** Status of the current download. */ DownloadStatus mDownloadStatus; /** Flag that show if current download is complete. */ bool mDownloadComplete; /** Byte count currently downloaded in mMemoryBuffer. */ int mDownloadedBytes; /** Buffer for files downloaded to memory. */ char *mMemoryBuffer; /** Buffer to handler human readable error provided by curl. */ char *mCurlError; time_t mUpdateTimer; std::set mOnlinePlayers; bool mAllowUpdate; }; #endif /* _ONLINELIST_H */