Itoyori  v0.0.1
ityr::ito::wsqueue< Entry, EnablePass > Class Template Reference

#include <wsqueue.hpp>

Public Member Functions

 wsqueue (int n_entries, int n_queues=1)
 
void push (const Entry &entry, int idx=0)
 
template<bool EnsureEmpty = true>
std::optional< Entry > pop (int idx=0)
 
std::optional< Entry > steal_nolock (common::topology::rank_t target_rank, int idx=0)
 
std::optional< Entry > steal (common::topology::rank_t target_rank, int idx=0)
 
void abort_steal (common::topology::rank_t target_rank, int idx=0)
 
bool trypass (const Entry &entry, common::topology::rank_t target_rank, int idx=0)
 
void pass (const Entry &entry, common::topology::rank_t target_rank, int idx=0)
 
template<typename Fn , bool EnsureEmpty = true>
void for_each_entry (Fn fn, int idx=0)
 
int size (int idx=0) const
 
bool empty (common::topology::rank_t target_rank, int idx=0) const
 
template<typename Fn >
void for_each_nonempty_queue (common::topology::rank_t target_rank, int idx_begin, int idx_end, bool reverse, Fn fn)
 
const common::global_locklock () const
 
int n_queues () const
 

Constructor & Destructor Documentation

◆ wsqueue()

template<typename Entry , bool EnablePass = true>
ityr::ito::wsqueue< Entry, EnablePass >::wsqueue ( int  n_entries,
int  n_queues = 1 
)
inline

Member Function Documentation

◆ abort_steal()

template<typename Entry , bool EnablePass = true>
void ityr::ito::wsqueue< Entry, EnablePass >::abort_steal ( common::topology::rank_t  target_rank,
int  idx = 0 
)
inline

◆ empty()

template<typename Entry , bool EnablePass = true>
bool ityr::ito::wsqueue< Entry, EnablePass >::empty ( common::topology::rank_t  target_rank,
int  idx = 0 
) const
inline

◆ for_each_entry()

template<typename Entry , bool EnablePass = true>
template<typename Fn , bool EnsureEmpty = true>
void ityr::ito::wsqueue< Entry, EnablePass >::for_each_entry ( Fn  fn,
int  idx = 0 
)
inline

◆ for_each_nonempty_queue()

template<typename Entry , bool EnablePass = true>
template<typename Fn >
void ityr::ito::wsqueue< Entry, EnablePass >::for_each_nonempty_queue ( common::topology::rank_t  target_rank,
int  idx_begin,
int  idx_end,
bool  reverse,
Fn  fn 
)
inline

◆ lock()

template<typename Entry , bool EnablePass = true>
const common::global_lock& ityr::ito::wsqueue< Entry, EnablePass >::lock ( ) const
inline

◆ n_queues()

template<typename Entry , bool EnablePass = true>
int ityr::ito::wsqueue< Entry, EnablePass >::n_queues ( ) const
inline

◆ pass()

template<typename Entry , bool EnablePass = true>
void ityr::ito::wsqueue< Entry, EnablePass >::pass ( const Entry &  entry,
common::topology::rank_t  target_rank,
int  idx = 0 
)
inline

◆ pop()

template<typename Entry , bool EnablePass = true>
template<bool EnsureEmpty = true>
std::optional<Entry> ityr::ito::wsqueue< Entry, EnablePass >::pop ( int  idx = 0)
inline

◆ push()

template<typename Entry , bool EnablePass = true>
void ityr::ito::wsqueue< Entry, EnablePass >::push ( const Entry &  entry,
int  idx = 0 
)
inline

◆ size()

template<typename Entry , bool EnablePass = true>
int ityr::ito::wsqueue< Entry, EnablePass >::size ( int  idx = 0) const
inline

◆ steal()

template<typename Entry , bool EnablePass = true>
std::optional<Entry> ityr::ito::wsqueue< Entry, EnablePass >::steal ( common::topology::rank_t  target_rank,
int  idx = 0 
)
inline

◆ steal_nolock()

template<typename Entry , bool EnablePass = true>
std::optional<Entry> ityr::ito::wsqueue< Entry, EnablePass >::steal_nolock ( common::topology::rank_t  target_rank,
int  idx = 0 
)
inline

◆ trypass()

template<typename Entry , bool EnablePass = true>
bool ityr::ito::wsqueue< Entry, EnablePass >::trypass ( const Entry &  entry,
common::topology::rank_t  target_rank,
int  idx = 0 
)
inline

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