Zth (libzth)
Loading...
Searching...
No Matches
zth::TypedFiberN< F, R, Args > Class Template Referencefinal

Actual fiber implementation for arbitrary function types and arguments. More...

#include <async.h>

Inheritance diagram for zth::TypedFiberN< F, R, Args >:
zth::TypedFiber< R > zth::Fiber zth::Listable zth::UniqueID< Fiber > zth::RefCounted zth::NamedUniqueID< Named > zth::UniqueIDBase

Public Types

using base = TypedFiber< R >
 
using Function = F
 
- Public Types inherited from zth::TypedFiber< R >
typedef R Return
 
typedef Future< ReturnFuture_type
 
- Public Types inherited from zth::Fiber
enum  State {
  Uninitialized = 0 , New , Ready , Running ,
  Waiting , Suspended , Dead
}
 
typedef void() FiberHook(Fiber &)
 
typedef ContextAttr::EntryArg EntryArg
 
typedef void(* Entry) (EntryArg)
 
typedef Hook< Fiber & > Hook_type
 
- Public Types inherited from zth::Listable
typedef void * user_type
 
- Public Types inherited from zth::UniqueID< Fiber >
typedef NamedUniqueID base
 

Public Member Functions

template<typename F_ , typename... Args_>
 TypedFiberN (F_ &&func, Args_ &&... args)
 
virtual ~TypedFiberN () final=default
 
- Public Member Functions inherited from zth::TypedFiber< R >
constexpr TypedFiber ()
 
virtual ~TypedFiber () noexcept override=default
 
void registerFuture (Future_type *future)
 
Future_typefuture () const
 
SharedPointer< Future_type > const & withFuture ()
 
 operator SharedPointer< Future_type > const & ()
 
 operator SharedReference< Future_type > ()
 
- Public Member Functions inherited from zth::Fiber
 Fiber (Entry entry, EntryArg arg=EntryArg())
 
virtual ~Fiber () noexcept override
 
int setStackSize (size_t size) noexcept
 
size_t stackSize () const noexcept
 
size_t stackUsage () const
 
Contextcontext () const noexcept
 
State state () const noexcept
 
void * fls () const noexcept
 
void setFls (void *data=nullptr) noexcept
 
Timestamp const & runningSince () const noexcept
 
Timestamp const & stateEnd () const noexcept
 
TimeInterval const & totalTime () const noexcept
 
void atExit (Hook_type::function_type f, Hook_type::arg_type arg=Hook_type::arg_type())
 
void atCleanup (Hook_type::function_type f, Hook_type::arg_type arg=Hook_type::arg_type())
 
int init (Timestamp const &now=Timestamp::now())
 
int run (Fiber &from, Timestamp now=Timestamp::now())
 
bool allowYield (Timestamp const &now=Timestamp::now()) const noexcept
 
void kill () noexcept
 
void nap (Timestamp const &sleepUntil=Timestamp::null()) noexcept
 
void wakeup () noexcept
 
void suspend () noexcept
 
void resume () noexcept
 
string str () const
 
- Public Member Functions inherited from zth::Listable
constexpr Listable () noexcept
 
constexpr Listable (Listable const &e) noexcept
 
Listableoperator= (Listable const &rhs) noexcept
 
 Listable (Listable &&l) noexcept
 
Listableoperator= (Listable &&l) noexcept
 
- Public Member Functions inherited from zth::UniqueID< Fiber >
 UniqueID (UniqueID const &)=delete
 
 UniqueID (UniqueID &&u) noexcept
 
 UniqueID (string const &name)
 
 UniqueID (string &&name)
 
 UniqueID (char const *name=nullptr)
 
UniqueIDoperator= (UniqueID const &)=delete
 
UniqueIDoperator= (UniqueID &&u) noexcept
 
virtual ~UniqueID () noexcept override=default
 
void const * normptr () const noexcept
 
uint64_t id () const noexcept
 
- Public Member Functions inherited from zth::NamedUniqueID< Named >
virtual ~NamedUniqueID () noexcept override=default
 
string const & name () const noexcept
 
void setName (string const &name)
 
void setName (char const *name)
 
void setName (string &&name)
 
virtual char const * id_str () const noexcept override
 
- Public Member Functions inherited from zth::RefCounted
 RefCounted () noexcept
 
virtual ~RefCounted () noexcept
 
void used () noexcept
 
bool unused () noexcept
 
size_t refs () const noexcept
 

Protected Member Functions

virtual void entry_ () final
 
- Protected Member Functions inherited from zth::TypedFiber< R >
template<typename T >
void setFuture (T const &r)
 
void setFuture ()
 
- Protected Member Functions inherited from zth::Fiber
void setState (State state, Timestamp const &t=Timestamp::now()) noexcept
 
void fiberEntry_ () noexcept
 
- Protected Member Functions inherited from zth::UniqueID< Fiber >
virtual uint64_t id_ () const noexcept final
 
- Protected Member Functions inherited from zth::NamedUniqueID< Named >
 NamedUniqueID (char const *name=nullptr)
 
 NamedUniqueID (string const &name)
 
 NamedUniqueID (string &&name)
 
- Protected Member Functions inherited from zth::UniqueIDBase
virtual ~UniqueIDBase () noexcept=default
 
- Protected Member Functions inherited from zth::RefCounted
virtual void cleanup () noexcept
 

Additional Inherited Members

- Static Public Member Functions inherited from zth::UniqueID< Fiber >
static uint64_t getID () noexcept
 
- Static Public Attributes inherited from zth::Fiber
static FiberHookhookNew = nullptr
 Hook to be called when a Fiber is created.
 
static FiberHookhookDead = nullptr
 Hook to be called when a Fiber is destroyed.
 
static uintptr_t const ExitUnknown = (uintptr_t)-1
 
- Static Protected Member Functions inherited from zth::TypedFiber< R >
static void entry (void *that)
 
- Static Protected Member Functions inherited from zth::Fiber
static void fiberEntry (void *that) noexcept
 

Detailed Description

template<typename F, typename R, typename Args>
class zth::TypedFiberN< F, R, Args >

Actual fiber implementation for arbitrary function types and arguments.

Template Parameters
Ffunction type (function pointer, lambda, etc.)
Rreturn type of F
Argsargument types of F as std::tuple<...>

Definition at line 566 of file async.h.

Member Typedef Documentation

◆ base

template<typename F , typename R , typename Args >
using zth::TypedFiberN< F, R, Args >::base = TypedFiber<R>

Definition at line 569 of file async.h.

◆ Function

template<typename F , typename R , typename Args >
using zth::TypedFiberN< F, R, Args >::Function = F

Definition at line 570 of file async.h.

Constructor & Destructor Documentation

◆ TypedFiberN()

template<typename F , typename R , typename Args >
template<typename F_ , typename... Args_>
zth::TypedFiberN< F, R, Args >::TypedFiberN ( F_ &&  func,
Args_ &&...  args 
)
inline

Definition at line 573 of file async.h.

◆ ~TypedFiberN()

template<typename F , typename R , typename Args >
virtual zth::TypedFiberN< F, R, Args >::~TypedFiberN ( )
finalvirtualdefault

Member Function Documentation

◆ entry_()

template<typename F , typename R , typename Args >
virtual void zth::TypedFiberN< F, R, Args >::entry_ ( )
inlinefinalprotectedvirtual

Implements zth::TypedFiber< R >.

Definition at line 581 of file async.h.


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