OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::AsyncTask< Type > Class Template Reference

非同期処理クラス More...

#include <AsyncTask.hpp>

Public Types

using base_type = std::future< Type >
 

Public Member Functions

SIV3D_NODISCARD_CXX20 AsyncTask ()=default
 デフォルトコンストラクタ More...
 
SIV3D_NODISCARD_CXX20 AsyncTask (base_type &&other) noexcept
 
SIV3D_NODISCARD_CXX20 AsyncTask (AsyncTask &&other) noexcept
 
template<class Fty , class... Args, std::enable_if_t< std::is_invocable_v< Fty, Args... >> * = nullptr>
SIV3D_NODISCARD_CXX20 AsyncTask (Fty &&f, Args &&... args)
 非同期処理のタスクを作成します More...
 
 ~AsyncTask ()=default
 
 AsyncTask (const base_type &)=delete
 
 AsyncTask (const AsyncTask &)=delete
 
AsyncTaskoperator= (const base_type &)=delete
 
AsyncTaskoperator= (const AsyncTask &)=delete
 
AsyncTaskoperator= (base_type &&other) noexcept
 
AsyncTaskoperator= (AsyncTask &&other) noexcept
 
bool isValid () const noexcept
 非同期処理を持っているかを返します。 More...
 
bool isReady () const
 タスクが完了した非同期処理を持っていて、結果をすぐに返せる状態であるかを返します。 More...
 
Type get ()
 タスクが完了した非同期処理の結果を返します。 More...
 
void wait () const
 非同期処理のタスク完了を待ちます。 More...
 
template<class Rep , class Period >
std::future_status wait_for (const std::chrono::duration< Rep, Period > &relTime) const
 
template<class Clock , class Duration >
std::future_status wait_until (const std::chrono::time_point< Clock, Duration > &absTime) const
 
std::shared_future< Type > share () noexcept
 

Detailed Description

template<class Type>
class s3d::AsyncTask< Type >

非同期処理クラス

Template Parameters
Type非同期処理のタスクで実行する関数の戻り値の型

Member Typedef Documentation

◆ base_type

template<class Type >
using s3d::AsyncTask< Type >::base_type = std::future<Type>

Constructor & Destructor Documentation

◆ AsyncTask() [1/6]

template<class Type >
SIV3D_NODISCARD_CXX20 s3d::AsyncTask< Type >::AsyncTask ( )
default

デフォルトコンストラクタ

Remarks
何もしません

◆ AsyncTask() [2/6]

template<class Type >
SIV3D_NODISCARD_CXX20 s3d::AsyncTask< Type >::AsyncTask ( base_type &&  other)
noexcept

◆ AsyncTask() [3/6]

template<class Type >
SIV3D_NODISCARD_CXX20 s3d::AsyncTask< Type >::AsyncTask ( AsyncTask< Type > &&  other)
noexcept

◆ AsyncTask() [4/6]

template<class Type >
template<class Fty , class... Args, std::enable_if_t< std::is_invocable_v< Fty, Args... >> * = nullptr>
SIV3D_NODISCARD_CXX20 s3d::AsyncTask< Type >::AsyncTask ( Fty &&  f,
Args &&...  args 
)
explicit

非同期処理のタスクを作成します

Template Parameters
Fty非同期処理のタスクで実行する関数の型
...Args非同期処理のタスクで実行する関数の引数の型
Parameters
f非同期処理のタスクで実行する関数
...args非同期処理のタスクで実行する関数の引数
Remarks
作成と同時にタスクが非同期で実行されます

◆ ~AsyncTask()

template<class Type >
s3d::AsyncTask< Type >::~AsyncTask ( )
default

◆ AsyncTask() [5/6]

template<class Type >
s3d::AsyncTask< Type >::AsyncTask ( const base_type )
delete

◆ AsyncTask() [6/6]

template<class Type >
s3d::AsyncTask< Type >::AsyncTask ( const AsyncTask< Type > &  )
delete

Member Function Documentation

◆ get()

template<class Type >
Type s3d::AsyncTask< Type >::get ( )

タスクが完了した非同期処理の結果を返します。

Remarks
タスクが完了していない場合は、完了まで待機します。
Returns
タスクが完了した非同期処理の結果

◆ isReady()

template<class Type >
bool s3d::AsyncTask< Type >::isReady ( ) const

タスクが完了した非同期処理を持っていて、結果をすぐに返せる状態であるかを返します。

Remarks
get() を呼ぶと、非同期処理を持たない状態に戻ります。
Returns
タスクが完了した非同期処理を持っていて、結果をすぐに返せる状態である場合 true, それ以外の場合は false

◆ isValid()

template<class Type >
bool s3d::AsyncTask< Type >::isValid ( ) const
noexcept

非同期処理を持っているかを返します。

Remarks
get() を呼ぶと、非同期処理を持たない状態に戻ります。
Returns
非同期処理を持っている場合 true, それ以外の場合は false

◆ operator=() [1/4]

template<class Type >
AsyncTask& s3d::AsyncTask< Type >::operator= ( AsyncTask< Type > &&  other)
noexcept

◆ operator=() [2/4]

template<class Type >
AsyncTask& s3d::AsyncTask< Type >::operator= ( base_type &&  other)
noexcept

◆ operator=() [3/4]

template<class Type >
AsyncTask& s3d::AsyncTask< Type >::operator= ( const AsyncTask< Type > &  )
delete

◆ operator=() [4/4]

template<class Type >
AsyncTask& s3d::AsyncTask< Type >::operator= ( const base_type )
delete

◆ share()

template<class Type >
std::shared_future<Type> s3d::AsyncTask< Type >::share ( )
noexcept

◆ wait()

template<class Type >
void s3d::AsyncTask< Type >::wait ( ) const

非同期処理のタスク完了を待ちます。

◆ wait_for()

template<class Type >
template<class Rep , class Period >
std::future_status s3d::AsyncTask< Type >::wait_for ( const std::chrono::duration< Rep, Period > &  relTime) const

◆ wait_until()

template<class Type >
template<class Clock , class Duration >
std::future_status s3d::AsyncTask< Type >::wait_until ( const std::chrono::time_point< Clock, Duration > &  absTime) const

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