TPIE

2362a60
tpie::pipelining::passive_sorter< T, pred_t, store_t > Class Template Reference

Pipelined sorter with push input and pull output. More...

#include <tpie/pipelining/sort.h>

Public Types

typedef T item_type
 Type of items sorted. More...
 
typedef merge_sorter
< item_type, true, pred_t,
store_t > 
sorter_t
 Type of the merge sort implementation used. More...
 
typedef sorter_t::ptr sorterptr
 Smart pointer to sorter_t. More...
 
typedef
bits::sort_pull_output_t
< item_type, pred_t, store_t > 
output_t
 Type of pipe sorter output. More...
 
typedef pipe_end
< bits::passive_sorter_factory_input
< item_type, pred_t, store_t > > 
input_pipe_t
 
typedef pullpipe_begin
< bits::passive_sorter_factory_output
< item_type, pred_t, store_t > > 
output_pipe_t
 

Public Member Functions

 passive_sorter (pred_t pred=pred_t(), store_t store=store_t())
 
 passive_sorter (const passive_sorter &)=delete
 
passive_sorteroperator= (const passive_sorter &)=delete
 
 passive_sorter (passive_sorter &&)=default
 
passive_sorteroperator= (passive_sorter &&)=default
 
input_pipe_t input ()
 Get the input push node. More...
 
output_pipe_t output ()
 Get the output pull node. More...
 

Detailed Description

template<typename T, typename pred_t = std::less<T>, typename store_t = default_store>
class tpie::pipelining::passive_sorter< T, pred_t, store_t >

Pipelined sorter with push input and pull output.

Get the input pipe with input() and the output pullpipe with output().

Template Parameters
TThe type of item to sort
pred_tThe predicate (e.g. std::less<T>) indicating the predicate on which to order an item before another.

Definition at line 530 of file sort.h.

Member Typedef Documentation

template<typename T , typename pred_t = std::less<T>, typename store_t = default_store>
typedef T tpie::pipelining::passive_sorter< T, pred_t, store_t >::item_type

Type of items sorted.

Definition at line 602 of file sort.h.

template<typename T , typename pred_t = std::less<T>, typename store_t = default_store>
typedef bits::sort_pull_output_t<item_type, pred_t, store_t> tpie::pipelining::passive_sorter< T, pred_t, store_t >::output_t

Type of pipe sorter output.

Definition at line 608 of file sort.h.

template<typename T , typename pred_t = std::less<T>, typename store_t = default_store>
typedef merge_sorter<item_type, true, pred_t, store_t> tpie::pipelining::passive_sorter< T, pred_t, store_t >::sorter_t

Type of the merge sort implementation used.

Definition at line 604 of file sort.h.

template<typename T , typename pred_t = std::less<T>, typename store_t = default_store>
typedef sorter_t::ptr tpie::pipelining::passive_sorter< T, pred_t, store_t >::sorterptr

Smart pointer to sorter_t.

Definition at line 606 of file sort.h.

Member Function Documentation

template<typename T , typename pred_t = std::less<T>, typename store_t = default_store>
input_pipe_t tpie::pipelining::passive_sorter< T, pred_t, store_t >::input ( )
inline

Get the input push node.

Definition at line 627 of file sort.h.

References tp_assert.

627  {
628  tp_assert(m_sorterInput, "input() called more than once");
629  auto ret = bits::passive_sorter_factory_input<item_type, pred_t, store_t>(
630  std::move(m_sorterInput), m_calc_token);
631  return {std::move(ret)};
632  }
#define tp_assert(condition, message)
Definition: tpie_assert.h:48
template<typename T , typename pred_t = std::less<T>, typename store_t = default_store>
output_pipe_t tpie::pipelining::passive_sorter< T, pred_t, store_t >::output ( )
inline

Get the output pull node.

Definition at line 637 of file sort.h.

References tp_assert.

637  {
638  tp_assert(m_sorterOutput, "output() called more than once");
639  auto ret = bits::passive_sorter_factory_output<item_type, pred_t, store_t>(
640  std::move(m_sorterOutput), m_calc_token);
641  return {std::move(ret)};
642  }
#define tp_assert(condition, message)
Definition: tpie_assert.h:48

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