Luanti 5.16.0-dev
Loading...
Searching...
No Matches
RequestQueue< Key, T, Caller, CallerData > Class Template Reference

Notes for RequestQueue usage. More...

#include <thread.h>

Collaboration diagram for RequestQueue< Key, T, Caller, CallerData >:

Public Types

typedef GetRequest< Key, T, Caller, CallerData > request_type
typedef GetResult< Key, T, Caller, CallerData > result_type
typedef ResultQueue< Key, T, Caller, CallerData > result_queue_type

Public Member Functions

bool empty () const
void add (const Key &key, Caller caller, CallerData callerdata, result_queue_type *dest)
request_type pop (unsigned int timeout_ms)
request_type pop ()
void pushResult (const request_type &req, const T &res)

Private Attributes

MutexedQueue< request_typem_queue

Detailed Description

template<typename Key, typename T, typename Caller, typename CallerData>
class RequestQueue< Key, T, Caller, CallerData >

Notes for RequestQueue usage.

Parameters
Keyunique key to identify a request for a specific resource
Tdata passed back to caller
Callerunique id of calling thread
CallerDataadditional data provided by caller

Member Typedef Documentation

◆ request_type

template<typename Key, typename T, typename Caller, typename CallerData>
typedef GetRequest<Key, T, Caller, CallerData> RequestQueue< Key, T, Caller, CallerData >::request_type

◆ result_queue_type

template<typename Key, typename T, typename Caller, typename CallerData>
typedef ResultQueue<Key, T, Caller, CallerData> RequestQueue< Key, T, Caller, CallerData >::result_queue_type

◆ result_type

template<typename Key, typename T, typename Caller, typename CallerData>
typedef GetResult<Key, T, Caller, CallerData> RequestQueue< Key, T, Caller, CallerData >::result_type

Member Function Documentation

◆ add()

template<typename Key, typename T, typename Caller, typename CallerData>
void RequestQueue< Key, T, Caller, CallerData >::add ( const Key & key,
Caller caller,
CallerData callerdata,
result_queue_type * dest )
inline

References CallerInfo< Caller, Data, Key, T >::caller, GetRequest< Key, T, Caller, CallerData >::callers, CallerInfo< Caller, Data, Key, T >::data, CallerInfo< Caller, Data, Key, T >::dest, GetRequest< Key, T, Caller, CallerData >::key, m_queue, and MutexedQueue< T >::push_back().

Here is the call graph for this function:

◆ empty()

template<typename Key, typename T, typename Caller, typename CallerData>
bool RequestQueue< Key, T, Caller, CallerData >::empty ( ) const
inline

References m_queue.

◆ pop() [1/2]

template<typename Key, typename T, typename Caller, typename CallerData>
request_type RequestQueue< Key, T, Caller, CallerData >::pop ( )
inline

References m_queue.

◆ pop() [2/2]

template<typename Key, typename T, typename Caller, typename CallerData>
request_type RequestQueue< Key, T, Caller, CallerData >::pop ( unsigned int timeout_ms)
inline

References m_queue.

◆ pushResult()

template<typename Key, typename T, typename Caller, typename CallerData>
void RequestQueue< Key, T, Caller, CallerData >::pushResult ( const request_type & req,
const T & res )
inline

Member Data Documentation

◆ m_queue

template<typename Key, typename T, typename Caller, typename CallerData>
MutexedQueue<request_type> RequestQueue< Key, T, Caller, CallerData >::m_queue
private

Referenced by add(), empty(), pop(), and pop().


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