OpenTTD Source  20240919-master-gdf0233f4c2
HTTPThreadSafeCallback Class Reference

Converts a HTTPCallback to a Thread-Safe variant. More...

#include <http_shared.h>

Data Structures

class  Callback
 Entries on the queue for later handling. More...
 

Public Member Functions

void OnFailure ()
 Similar to HTTPCallback::OnFailure, but thread-safe.
 
void OnReceiveData (std::unique_ptr< char[]> data, size_t length)
 Similar to HTTPCallback::OnReceiveData, but thread-safe.
 
void HandleQueue ()
 Process everything on the queue. More...
 
template<typename T >
void WaitTillEmptyOrCondition (T condition)
 Wait till the queue is dequeued, or a condition is met. More...
 
bool IsQueueEmpty ()
 Check if the queue is empty.
 
 HTTPThreadSafeCallback (HTTPCallback *callback)
 

Data Fields

std::atomic< bool > cancelled = false
 

Private Attributes

HTTPCallbackcallback
 The callback to send data back on.
 
std::mutex mutex
 Mutex to protect the queue.
 
std::vector< Callbackqueue
 Queue of data to send back.
 
std::condition_variable queue_cv
 Condition variable to wait for the queue to be empty.
 

Detailed Description

Converts a HTTPCallback to a Thread-Safe variant.

Definition at line 22 of file http_shared.h.

Member Function Documentation

◆ HandleQueue()

void HTTPThreadSafeCallback::HandleQueue ( )
inline

Process everything on the queue.

Should be called from the Game Thread.

Definition at line 59 of file http_shared.h.

References callback, HTTPCallback::IsCancelled(), lock, mutex, HTTPCallback::OnFailure(), HTTPCallback::OnReceiveData(), queue, and queue_cv.

◆ WaitTillEmptyOrCondition()

template<typename T >
void HTTPThreadSafeCallback::WaitTillEmptyOrCondition ( condition)
inline

Wait till the queue is dequeued, or a condition is met.

Parameters
conditionCondition functor.

Definition at line 82 of file http_shared.h.


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