libjmmcg  release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
dataflow_basic.cpp File Reference
#include "stdafx.h"
#include <boost/test/included/unit_test.hpp>
#include <boost/mpl/list.hpp>
#include "core/thread_pool_sequential.hpp"
#include "core/thread_pool_master.hpp"
#include "core/thread_pool_workers.hpp"
#include <boost/bind/bind.hpp>
Include dependency graph for dataflow_basic.cpp:

Go to the source code of this file.

Classes

struct  fifo_queue_t< Db, Sz, Jn, Mdl, PoolSize, GSSk >
 
struct  lifo_queue_t< Db, Sz, Jn, Mdl, PoolSize, GSSk >
 
struct  lifo_lockfree_queue_t< Db, Sz, Jn, Mdl, PoolSize, GSSk >
 
struct  priority_queue_t< Db, Sz, Jn, Mdl, PoolSize, GSSk >
 
struct  res_t
 
struct  work_type
 
struct  work_type_simple
 

Macros

#define BOOST_TEST_MODULE   libjmmcg_tests
 

Typedefs

typedef boost::mpl::list< fifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::sequential, generic_traits::return_data::nonjoinable, sequential_mode >, fifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, lifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::sequential, generic_traits::return_data::nonjoinable, sequential_mode >, lifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, lifo_lockfree_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::sequential, generic_traits::return_data::nonjoinable, sequential_mode >, lifo_lockfree_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, priority_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::sequential, generic_traits::return_data::nonjoinable, sequential_mode >, priority_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, fifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 1 >, fifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 1, 2 >, fifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 1 >, lifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 1 >, lifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 1, 2 >, lifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 1 >, priority_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 1 >, priority_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 1, 2 >, priority_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 1 >, fifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 2 >, fifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 2 >, lifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 2 >, lifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 2 >, priority_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 2 >, priority_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 2 >> finite_test_types
 
typedef boost::mpl::list< fifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, generic_traits::return_data::nonjoinable, sequential_mode >, fifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, lifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, generic_traits::return_data::nonjoinable, sequential_mode >, lifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, priority_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, generic_traits::return_data::nonjoinable, sequential_mode >, priority_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, fifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::nonjoinable, heavyweight_threading >, fifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::nonjoinable, heavyweight_threading, 0, 2 >, fifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::joinable, heavyweight_threading >, lifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::nonjoinable, heavyweight_threading >, lifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::nonjoinable, heavyweight_threading, 0, 2 >, lifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::joinable, heavyweight_threading >, priority_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::nonjoinable, heavyweight_threading >, priority_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::nonjoinable, heavyweight_threading, 0, 2 >, priority_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::joinable, heavyweight_threading >> infinite_test_types
 

Functions

 BOOST_AUTO_TEST_CASE_TEMPLATE (one_thread, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (n_threads, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work_boost_bind, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work_time_critical_simple, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_two_work, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_two_work_atonce, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (default_ctor, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work_boost_bind, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work_time_critical, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_two_work, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_two_work_atonce, T, infinite_test_types)
 

Macro Definition Documentation

◆ BOOST_TEST_MODULE

#define BOOST_TEST_MODULE   libjmmcg_tests

Definition at line 21 of file dataflow_basic.cpp.

Typedef Documentation

◆ finite_test_types

typedef boost::mpl::list< fifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::sequential, generic_traits::return_data::nonjoinable, sequential_mode>, fifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode>, lifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::sequential, generic_traits::return_data::nonjoinable, sequential_mode>, lifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode>, lifo_lockfree_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::sequential, generic_traits::return_data::nonjoinable, sequential_mode>, lifo_lockfree_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode>, priority_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::sequential, generic_traits::return_data::nonjoinable, sequential_mode>, priority_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode>, fifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 1>, fifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 1, 2>, fifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 1>, lifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 1>, lifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 1, 2>, lifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 1>, priority_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 1>, priority_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 1, 2>, priority_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 1>, fifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 2>, fifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 2>, lifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 2>, lifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 2>, priority_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::nonjoinable, heavyweight_threading, 2>, priority_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 2>> finite_test_types

Definition at line 141 of file dataflow_basic.cpp.

◆ infinite_test_types

typedef boost::mpl::list<> infinite_test_types

Definition at line 167 of file dataflow_basic.cpp.

Function Documentation

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [1/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work  ,
,
finite_test_types   
)

Definition at line 246 of file dataflow_basic.cpp.

References work_type_simple::work_type_simple().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [2/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work  ,
,
infinite_test_types   
)

Definition at line 308 of file dataflow_basic.cpp.

References work_type_simple::work_type_simple().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [3/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work_boost_bind  ,
,
finite_test_types   
)

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [4/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work_boost_bind  ,
,
infinite_test_types   
)

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [5/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work_time_critical  ,
,
infinite_test_types   
)

Definition at line 324 of file dataflow_basic.cpp.

References work_type::work_type().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [6/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work_time_critical_simple  ,
,
finite_test_types   
)

Definition at line 264 of file dataflow_basic.cpp.

References work_type_simple::work_type_simple().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [7/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_two_work  ,
,
finite_test_types   
)

Definition at line 274 of file dataflow_basic.cpp.

References work_type::work_type().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [8/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_two_work  ,
,
infinite_test_types   
)

Definition at line 333 of file dataflow_basic.cpp.

References work_type::work_type().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [9/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_two_work_atonce  ,
,
finite_test_types   
)

Definition at line 284 of file dataflow_basic.cpp.

References work_type_simple::work_type_simple().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [10/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_two_work_atonce  ,
,
infinite_test_types   
)

Definition at line 342 of file dataflow_basic.cpp.

References work_type_simple::work_type_simple().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [11/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( default_ctor  ,
,
infinite_test_types   
)

Definition at line 297 of file dataflow_basic.cpp.

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [12/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( n_threads  ,
,
finite_test_types   
)

Definition at line 234 of file dataflow_basic.cpp.

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [13/13]

BOOST_AUTO_TEST_CASE_TEMPLATE ( one_thread  ,
,
finite_test_types   
)

Definition at line 222 of file dataflow_basic.cpp.