Classes | |
struct | Request |
Public Member Functions | |
CurlFetchThread (int parallel_limit) | |
void | requestFetch (const HTTPFetchRequest &fetch_request) |
void | requestClear (u64 caller, Event *event) |
void | requestWakeUp () |
Public Member Functions inherited from Thread | |
Thread (const std::string &name="") | |
virtual | ~Thread () |
bool | start () |
bool | stop () |
bool | wait () |
bool | isCurrentThread () |
bool | isRunning () |
bool | stopRequested () |
std::thread::id | getThreadId () |
bool | getReturnValue (void **ret) |
bool | bindToProcessor (unsigned int proc_number) |
bool | setPriority (int prio) |
Protected Types | |
enum | RequestType { RT_FETCH , RT_CLEAR , RT_WAKEUP } |
Protected Member Functions | |
void | processRequest (Request &req) |
void | processQueued (CurlHandlePool *pool) |
void | processCurlMessage (CURLMsg *msg) |
void | waitForRequest (long timeout) |
void | waitForIO (long timeout) |
void * | run () |
Protected Attributes | |
CURLM * | m_multi |
MutexedQueue< Request > | m_requests |
size_t | m_parallel_limit |
std::vector< std::unique_ptr< HTTPFetchOngoing > > | m_all_ongoing |
std::list< HTTPFetchRequest > | m_queued_fetches |
Protected Attributes inherited from Thread | |
std::string | m_name |
Additional Inherited Members | |
Static Public Member Functions inherited from Thread | |
static Thread * | getCurrentThread () |
static void | setName (const std::string &name) |
static unsigned int | getNumberOfProcessors () |
|
protected |
|
inline |
References m_parallel_limit.
|
inlineprotected |
References httpfetch_deliver_result(), and m_all_ongoing.
Referenced by run().
|
inlineprotected |
References httpfetch_deliver_result(), m_all_ongoing, m_multi, m_parallel_limit, and m_queued_fetches.
Referenced by run().
|
inlineprotected |
References HTTPFetchRequest::caller, CurlFetchThread::Request::event, CurlFetchThread::Request::fetch_request, m_all_ongoing, m_queued_fetches, RT_CLEAR, RT_FETCH, RT_WAKEUP, Event::signal(), and CurlFetchThread::Request::type.
Referenced by run(), and waitForRequest().
|
inline |
|
inline |
References CurlFetchThread::Request::fetch_request, m_requests, RT_FETCH, and CurlFetchThread::Request::type.
|
inline |
References m_requests, RT_WAKEUP, and CurlFetchThread::Request::type.
|
inlineprotectedvirtual |
Implements Thread.
References BEGIN_DEBUG_EXCEPTION_HANDLER, END_DEBUG_EXCEPTION_HANDLER, errorstream, FATAL_ERROR_IF, m_all_ongoing, m_multi, m_queued_fetches, m_requests, processCurlMessage(), processQueued(), processRequest(), Thread::stopRequested(), waitForIO(), and waitForRequest().
|
inlineprotected |
References errorstream, m_multi, and sleep_ms.
Referenced by run().
|
inlineprotected |
References m_queued_fetches, m_requests, and processRequest().
Referenced by run().
|
protected |
Referenced by processCurlMessage(), processQueued(), processRequest(), and run().
|
protected |
Referenced by processQueued(), run(), and waitForIO().
|
protected |
Referenced by CurlFetchThread(), and processQueued().
|
protected |
Referenced by processQueued(), processRequest(), run(), and waitForRequest().
|
protected |
Referenced by requestClear(), requestFetch(), requestWakeUp(), run(), and waitForRequest().