Luanti 5.15.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, RequestQueue< Key, T, Caller, CallerData >::m_queue, and MutexedQueue< T >::push_back().

Referenced by TextureSource::processRequestQueued().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ empty()

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

References RequestQueue< Key, T, Caller, CallerData >::m_queue.

Referenced by TextureSource::processQueue().

+ Here is the caller graph for this function:

◆ pop() [1/2]

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

◆ 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 RequestQueue< Key, T, Caller, CallerData >::m_queue.

Referenced by TextureSource::processQueue().

+ Here is the caller graph for this function:

◆ 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

References GetResult< Key, T, Caller, CallerData >::caller, GetRequest< Key, T, Caller, CallerData >::callers, GetResult< Key, T, Caller, CallerData >::item, GetRequest< Key, T, Caller, CallerData >::key, and GetResult< Key, T, Caller, CallerData >::key.

Referenced by TextureSource::processQueue().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_queue


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