libjmmcg  build_2783
A C++ library containing an eclectic mix of useful, advanced components.
jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG > Class Template Referenceabstract

#include <thread_work_closure.hpp>

Inheritance diagram for jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >:
[legend]
Collaboration diagram for jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >:
[legend]

Public Types

typedef thread_wk_base< OST, CFG > base_t
 
typedef base_t::os_traits os_traits
 
typedef base_t::lock_traits lock_traits
 
typedef base_t::work_complete_t work_complete_t
 
typedef sp_counter_type< long, typename base_t::lock_traits, Del, AtCtr > counter_type
 
typedef counter_type::atomic_ctr_t atomic_ctr_t
 
typedef counter_type::deleter_t deleter_t
 
typedef lock_traits::template noop_atomic_ctr< typename atomic_ctr_t::value_type > no_ref_counting
 
typedef noop_dtor< typename deleter_t::element_typeno_deletion
 
- Public Types inherited from jmmcg::ppd::private_::closure::thread_wk_base< OST, CFG >
typedef intrusive::node_details_itf< typename OST::lock_traits > base_t
 
typedef OST os_traits
 
typedef os_traits::lock_traits lock_traits
 
typedef input_t::cfg_type cfg_type
 
typedef input_t::cfg_details_type cfg_details_type
 
typedef lock::lockable_settable< lock_traitswork_complete_t
 This atomic object is the object that is used to signal to a waiting future that the work has been completed. More...
 
- Public Types inherited from jmmcg::intrusive::node_details_itf< OST::lock_traits >
using base_t = sp_counter_itf_type< long >
 
using lock_traits = OST::lock_traits
 
using atomic_ctr_t = base_t
 
using atomic_ptr_t = typename lock_traits::template atomic< node_details_itf * >
 
- Public Types inherited from jmmcg::sp_counter_itf_type< long >
typedef long value_type
 
typedef jmmcg::default_delete< sp_counter_itf_typedeleter_t
 The default deletion method for objects that inherit from this intrusively-counted type, which is just heap-deletion, if the objects are heap-allocated. More...
 
- Public Types inherited from jmmcg::sp_counter_type< long, thread_wk_base< OST, CFG >::lock_traits, Del, AtCtr >
using base_t = sp_counter_itf_type< long >
 
using value_type = typename base_t::value_type
 
using atomic_ctr_t = AtCtr< value_type >
 
using lock_traits = thread_wk_base< OST, CFG >::lock_traits
 
typedef Del< sp_counter_typedeleter_t
 Make sure the correct object deletion mechanism is used. More...
 

Public Member Functions

constexpr generic_traits::return_data __fastcall result_traits () const noexcept(true) override FORCE_INLINE
 
virtual const os_traits::thread_exception &__fastcall exception_thrown_in_thread () const noexcept(true)=0
 
virtual void throw_any_exception () const noexcept(false)=0
 
tstring __fastcall to_string () const noexcept(false) override FORCE_INLINE
 
- Public Member Functions inherited from jmmcg::ppd::private_::closure::thread_wk_base< OST, CFG >
 thread_wk_base (thread_wk_base const &)=delete
 
virtual ~thread_wk_base () noexcept(true) FORCE_INLINE
 
virtual bool __fastcall operator< (thread_wk_base const &) const noexcept(true)=0
 The default ordering of core_work in the pool_aspect::work_queue_type is based upon the weak order of the work to be mutated. More...
 
bool __fastcall operator== (thread_wk_base const &ctw) const noexcept(true) FORCE_INLINE
 
virtual void update_edge (typename cfg_type::node_property_t::value_type const e_details) noexcept(false)=0
 
virtual void __fastcall process_joinable (typename cfg_type::node_property_t::value_type const e_details) noexcept(false)=0
 
virtual void __fastcall process_nonjoinable (typename cfg_type::node_property_t::value_type const e_details) noexcept(false)=0
 
virtual work_complete_t *__fastcall work_complete () noexcept(true) FORCE_INLINE
 
- Public Member Functions inherited from jmmcg::intrusive::node_details_itf< OST::lock_traits >
virtual ~node_details_itf () noexcept(true) FORCE_INLINE
 
- Public Member Functions inherited from jmmcg::sp_counter_itf_type< long >
virtual ~sp_counter_itf_type ()
 
virtual value_type sp_count () const noexcept(true)
 
virtual value_type sp_acquire () noexcept(true)
 
virtual bool sp_release () noexcept(true)
 
virtual bool sp_noop_ctr () const noexcept(true)
 
virtual bool __fastcall operator< (const value_type) const noexcept(true)
 
virtual bool __fastcall operator> (const value_type) const noexcept(true)
 
virtual bool __fastcall operator>= (const value_type) const noexcept(true)
 
constexpr bool FORCE_INLINE operator== (const value_type v) const noexcept(true)
 
virtual void deleter ()
 Call the correct deleter_t object to delete the object. More...
 
virtual tstring sp_to_string () const noexcept(false)
 
- Public Member Functions inherited from jmmcg::sp_counter_type< long, thread_wk_base< OST, CFG >::lock_traits, Del, AtCtr >
virtual ~sp_counter_type () noexcept(true)=default
 
void deleter () override
 Call the correct deleter_t object to delete the object. More...
 
value_type sp_count () const noexcept(true) override final
 
atomic_ctr_t::value_type sp_acquire () noexcept(true) override final
 
bool sp_release () noexcept(true) override final
 
bool __fastcall operator< (const value_type v) const noexcept(true) override
 
bool __fastcall operator> (const value_type v) const noexcept(true) override
 
bool __fastcall operator>= (const value_type v) const noexcept(true) override final
 
tstring sp_to_string () const noexcept(false) override final
 

Static Public Attributes

static constexpr generic_traits::return_data result_traits_ =generic_traits::return_data::joinable
 
static constexpr ppd::generic_traits::memory_access_modes memory_access_mode
 
- Static Public Attributes inherited from jmmcg::sp_counter_itf_type< long >
static constexpr ppd::generic_traits::memory_access_modes memory_access_mode
 
- Static Public Attributes inherited from jmmcg::sp_counter_type< long, thread_wk_base< OST, CFG >::lock_traits, Del, AtCtr >
static constexpr ppd::generic_traits::memory_access_modes memory_access_mode
 

Protected Member Functions

 ~thread_wk_async_t () noexcept(true) FORCE_INLINE
 
- Protected Member Functions inherited from jmmcg::ppd::private_::closure::thread_wk_base< OST, CFG >
constexpr thread_wk_base () noexcept(true) FORCE_INLINE
 
- Protected Member Functions inherited from jmmcg::intrusive::node_details_itf< OST::lock_traits >
 node_details_itf () noexcept(true) FORCE_INLINE
 
- Protected Member Functions inherited from jmmcg::sp_counter_itf_type< long >
constexpr sp_counter_itf_type () noexcept(true)
 
- Protected Member Functions inherited from jmmcg::sp_counter_type< long, thread_wk_base< OST, CFG >::lock_traits, Del, AtCtr >
constexpr sp_counter_type () noexcept(true)
 

Additional Inherited Members

- Public Attributes inherited from jmmcg::intrusive::node_details_itf< OST::lock_traits >
atomic_ptr_t next
 

Detailed Description

template<typename OST, template< class > class Del, template< class > class AtCtr, class CFG>
class jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >

Todo:
joinable types do not have to be allocated on the heap, because there is an execution_context available to hold these objects.

Definition at line 637 of file thread_work_closure.hpp.

Member Typedef Documentation

◆ atomic_ctr_t

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
typedef counter_type::atomic_ctr_t jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::atomic_ctr_t

Definition at line 644 of file thread_work_closure.hpp.

◆ base_t

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
typedef thread_wk_base<OST, CFG> jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::base_t

Definition at line 639 of file thread_work_closure.hpp.

◆ counter_type

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
typedef sp_counter_type<long, typename base_t::lock_traits, Del, AtCtr> jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::counter_type

Definition at line 643 of file thread_work_closure.hpp.

◆ deleter_t

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
typedef counter_type::deleter_t jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::deleter_t

Definition at line 645 of file thread_work_closure.hpp.

◆ lock_traits

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
typedef base_t::lock_traits jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::lock_traits

Definition at line 641 of file thread_work_closure.hpp.

◆ no_deletion

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
typedef noop_dtor<typename deleter_t::element_type> jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::no_deletion

Definition at line 647 of file thread_work_closure.hpp.

◆ no_ref_counting

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
typedef lock_traits::template noop_atomic_ctr<typename atomic_ctr_t::value_type> jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::no_ref_counting

Definition at line 646 of file thread_work_closure.hpp.

◆ os_traits

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
typedef base_t::os_traits jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::os_traits

Definition at line 640 of file thread_work_closure.hpp.

◆ work_complete_t

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
typedef base_t::work_complete_t jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::work_complete_t

Definition at line 642 of file thread_work_closure.hpp.

Constructor & Destructor Documentation

◆ ~thread_wk_async_t()

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::~thread_wk_async_t ( )
inlineprotectednoexcept

Member Function Documentation

◆ exception_thrown_in_thread()

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
virtual const os_traits::thread_exception& __fastcall jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::exception_thrown_in_thread ( ) const
pure virtualnoexcept

◆ result_traits()

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
constexpr generic_traits::return_data __fastcall jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::result_traits ( ) const
inlineconstexproverridevirtualnoexcept

◆ throw_any_exception()

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
virtual void jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::throw_any_exception ( ) const
pure virtualnoexcept

◆ to_string()

Member Data Documentation

◆ memory_access_mode

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
constexpr ppd::generic_traits::memory_access_modes jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::memory_access_mode
staticconstexpr
Initial value:

To assist in allowing compile-time computation of the algorithmic order of the threading model.

Definition at line 653 of file thread_work_closure.hpp.

◆ result_traits_

template<typename OST , template< class > class Del, template< class > class AtCtr, class CFG >
constexpr generic_traits::return_data jmmcg::ppd::private_::closure::thread_wk_async_t< generic_traits::return_data::joinable, OST, Del, AtCtr, CFG >::result_traits_ =generic_traits::return_data::joinable
staticconstexpr

Definition at line 648 of file thread_work_closure.hpp.


The documentation for this class was generated from the following file:
jmmcg::ppd::generic_traits::memory_access_modes::erew_memory_access
Exclusive-Read, Exclusive-Write memory access.
jmmcg::ppd::generic_traits::memory_access_modes::crew_memory_access
Concurrent-Read, Exclusive-Write memory access.