Furrent
Public Types | Public Member Functions | List of all members
fur::policy::Queue< T > Class Template Reference

Special queue that allows the extraction of item using custom policies. More...

#include <queue.hpp>

Public Types

enum  Error { Error::Empty, Error::PolicyFailure }
 All possible error that can occur. More...
 
using Result = util::Result< T, Error >
 Custom queue result type. More...
 
using MutateFn = std::function< bool(T &)>
 

Public Member Functions

void insert (T &&item)
 
template<typename... Args>
void emplace (Args &&... args)
 
Result extract (const IPolicy< T > &policy)
 
void mutate (MutateFn mutation)
 Mutate the internal list of items. More...
 
std::list< T > & items ()
 
int64_t size () const
 

Detailed Description

template<typename T>
class fur::policy::Queue< T >

Special queue that allows the extraction of item using custom policies.

Template Parameters
Ttype of the stored items

Member Typedef Documentation

◆ MutateFn

template<typename T >
using fur::policy::Queue< T >::MutateFn = std::function<bool(T&)>

◆ Result

template<typename T >
using fur::policy::Queue< T >::Result = util::Result<T, Error>

Custom queue result type.

Member Enumeration Documentation

◆ Error

template<typename T >
enum fur::policy::Queue::Error
strong

All possible error that can occur.

Enumerator
Empty 

There are no more elements.

PolicyFailure 

Policy returned no element.

Member Function Documentation

◆ emplace()

template<typename T >
template<typename... Args>
void fur::policy::Queue< T >::emplace ( Args &&...  args)

Construct and insert a new element

Parameters
...argsarguments list used in constructor of T

◆ extract()

template<typename T >
auto fur::policy::Queue< T >::extract ( const IPolicy< T > &  policy)

Tries to extract an element using a policy

Parameters
policycustom logic used to select the element

◆ insert()

template<typename T >
void fur::policy::Queue< T >::insert ( T &&  item)

Insert a new element

Parameters
itemelement to be inserted

◆ items()

template<typename T >
std::list< T > & fur::policy::Queue< T >::items
Returns
inner list of items

◆ mutate()

template<typename T >
void fur::policy::Queue< T >::mutate ( MutateFn  mutation)

Mutate the internal list of items.

◆ size()

template<typename T >
int64_t fur::policy::Queue< T >::size
Returns
Number of items present

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