Geant4-11
Public Types | Public Member Functions | Protected Attributes
PTL::TaskFuture< RetT > Class Template Referenceabstract

The task class is supplied to thread_pool. More...

#include <Task.hh>

Inheritance diagram for PTL::TaskFuture< RetT >:
PTL::VTask PTL::PackagedTask< RetT, Args > PTL::Task< RetT, Args > PTL::Task< RetT, void >

Public Types

typedef std::future< RetT > future_type
 
typedef std::promise< RetT > promise_type
 
typedef RetT result_type
 
typedef size_t size_type
 
typedef std::thread::id tid_type
 
typedef std::function< void()> void_func_t
 

Public Member Functions

intmax_t depth () const
 
virtual RetT get ()=0
 
virtual future_type get_future ()=0
 
bool is_native_task () const
 
virtual void operator() ()=0
 
TaskFutureoperator= (const TaskFuture &)=delete
 
TaskFutureoperator= (TaskFuture &&)=default
 
template<typename... Args>
 TaskFuture (Args &&... args)
 
 TaskFuture (const TaskFuture &)=delete
 
 TaskFuture (TaskFuture &&)=default
 
virtual void wait ()=0
 
virtual ~TaskFuture ()=default
 

Protected Attributes

intmax_t m_depth = 0
 
void_func_t m_func = []() {}
 
bool m_is_native = false
 

Detailed Description

template<typename RetT>
class PTL::TaskFuture< RetT >

The task class is supplied to thread_pool.

Definition at line 48 of file Task.hh.

Member Typedef Documentation

◆ future_type

template<typename RetT >
typedef std::future<RetT> PTL::TaskFuture< RetT >::future_type

Definition at line 52 of file Task.hh.

◆ promise_type

template<typename RetT >
typedef std::promise<RetT> PTL::TaskFuture< RetT >::promise_type

Definition at line 51 of file Task.hh.

◆ result_type

template<typename RetT >
typedef RetT PTL::TaskFuture< RetT >::result_type

Definition at line 53 of file Task.hh.

◆ size_type

typedef size_t PTL::VTask::size_type
inherited

Definition at line 57 of file VTask.hh.

◆ tid_type

typedef std::thread::id PTL::VTask::tid_type
inherited

Definition at line 56 of file VTask.hh.

◆ void_func_t

typedef std::function<void()> PTL::VTask::void_func_t
inherited

Definition at line 58 of file VTask.hh.

Constructor & Destructor Documentation

◆ TaskFuture() [1/3]

template<typename RetT >
template<typename... Args>
PTL::TaskFuture< RetT >::TaskFuture ( Args &&...  args)
inline

Definition at line 58 of file Task.hh.

59 : VTask{ std::forward<Args>(args)... }
60 {}
static char ** args
Definition: G4Xt.cc:51
VTask()=default

◆ ~TaskFuture()

template<typename RetT >
virtual PTL::TaskFuture< RetT >::~TaskFuture ( )
virtualdefault

◆ TaskFuture() [2/3]

template<typename RetT >
PTL::TaskFuture< RetT >::TaskFuture ( const TaskFuture< RetT > &  )
delete

◆ TaskFuture() [3/3]

template<typename RetT >
PTL::TaskFuture< RetT >::TaskFuture ( TaskFuture< RetT > &&  )
default

Member Function Documentation

◆ depth()

intmax_t PTL::VTask::depth ( ) const
inlineinherited

Definition at line 78 of file VTask.hh.

78{ return m_depth; }
intmax_t m_depth
Definition: VTask.hh:82

References PTL::VTask::m_depth.

◆ get()

template<typename RetT >
virtual RetT PTL::TaskFuture< RetT >::get ( )
pure virtual

◆ get_future()

template<typename RetT >
virtual future_type PTL::TaskFuture< RetT >::get_future ( )
pure virtual

◆ is_native_task()

bool PTL::VTask::is_native_task ( ) const
inlineinherited

Definition at line 77 of file VTask.hh.

77{ return m_is_native; }
bool m_is_native
Definition: VTask.hh:81

References PTL::VTask::m_is_native.

◆ operator()()

virtual void PTL::VTask::operator() ( )
pure virtualinherited

◆ operator=() [1/2]

template<typename RetT >
TaskFuture & PTL::TaskFuture< RetT >::operator= ( const TaskFuture< RetT > &  )
delete

◆ operator=() [2/2]

template<typename RetT >
TaskFuture & PTL::TaskFuture< RetT >::operator= ( TaskFuture< RetT > &&  )
default

◆ wait()

template<typename RetT >
virtual void PTL::TaskFuture< RetT >::wait ( )
pure virtual

Field Documentation

◆ m_depth

intmax_t PTL::VTask::m_depth = 0
protectedinherited

Definition at line 82 of file VTask.hh.

Referenced by PTL::VTask::depth().

◆ m_func

void_func_t PTL::VTask::m_func = []() {}
protectedinherited

Definition at line 83 of file VTask.hh.

◆ m_is_native

bool PTL::VTask::m_is_native = false
protectedinherited

Definition at line 81 of file VTask.hh.

Referenced by PTL::VTask::is_native_task().


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