Flow
Documentation for the Flow C++ Library
Loading...
Searching...
No Matches
flow::ThreadTask Class Referencefinal

A task that can be execute by a thread. Internally, it uses type erasure to store a std::packaged_task. The memory is managed by std::unique_ptr. More...

#include <flow_thread_task.h>

Classes

struct  ThreadTaskImp
struct  ThreadTaskInterface

Public Member Functions

template<typename FuncType>
 ThreadTask (std::packaged_task< FuncType > task)
 ThreadTask (ThreadTask &&)=default
 ThreadTask (const ThreadTask &)=delete
ThreadTaskoperator= (ThreadTask &&)=default
ThreadTaskoperator= (const ThreadTask &)=delete
 ~ThreadTask ()=default
void execute ()
 Execute this task.

Private Attributes

std::unique_ptr< ThreadTaskInterfacetask_

Detailed Description

A task that can be execute by a thread. Internally, it uses type erasure to store a std::packaged_task. The memory is managed by std::unique_ptr.

Definition at line 10 of file flow_thread_task.h.

Constructor & Destructor Documentation

◆ ThreadTask() [1/3]

template<typename FuncType>
flow::ThreadTask::ThreadTask ( std::packaged_task< FuncType > task)
inlineexplicit

Definition at line 32 of file flow_thread_task.h.

33 : task_(std::make_unique<ThreadTaskImp<std::packaged_task<FuncType>>>(std::move(task))) {
34 }
std::unique_ptr< ThreadTaskInterface > task_

References task_.

Referenced by operator=(), operator=(), ThreadTask(), and ThreadTask().

◆ ThreadTask() [2/3]

flow::ThreadTask::ThreadTask ( ThreadTask && )
default

References ThreadTask().

◆ ThreadTask() [3/3]

flow::ThreadTask::ThreadTask ( const ThreadTask & )
delete

References ThreadTask().

◆ ~ThreadTask()

flow::ThreadTask::~ThreadTask ( )
default

Member Function Documentation

◆ execute()

void flow::ThreadTask::execute ( )
inline

Execute this task.

Definition at line 43 of file flow_thread_task.h.

43 {
44 task_->executeImp();
45 }

References task_.

◆ operator=() [1/2]

ThreadTask & flow::ThreadTask::operator= ( const ThreadTask & )
delete

References ThreadTask().

◆ operator=() [2/2]

ThreadTask & flow::ThreadTask::operator= ( ThreadTask && )
default

References ThreadTask().

Member Data Documentation

◆ task_

std::unique_ptr<ThreadTaskInterface> flow::ThreadTask::task_
private

Definition at line 28 of file flow_thread_task.h.

Referenced by execute(), and ThreadTask().


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