cortex 0.0.1
Loading...
Searching...
No Matches
cortex::tiny_fiber::detail::Fiber Class Referencefinal

#include <fiber.hpp>

Inheritance diagram for cortex::tiny_fiber::detail::Fiber:
[legend]
Collaboration diagram for cortex::tiny_fiber::detail::Fiber:
[legend]

Public Types

using Id = std::uint64_t
 
using Body = fu2::unique_function< void()>
 

Public Member Functions

 Fiber (PrivateTag, Id id, Body body, std::size_t stack_size, MemoryResourceSharedPtr resource)
 
 ~Fiber () override=default
 
 Fiber (const Fiber &)=delete
 
Fiberoperator= (const Fiber &)=delete
 
 Fiber (Fiber &&)=delete
 
Fiberoperator= (Fiber &&)=delete
 
Id GetId () const noexcept
 
bool IsSuspended () const noexcept
 
bool HasException () const noexcept
 
std::exception_ptr GetException () const noexcept
 
void SetException (std::exception_ptr ex) noexcept
 
void Run ()
 
void Yield ()
 
void Park ()
 
void Wake ()
 
std::vector< Fiber * > Complete ()
 
void AddWaiter (Fiber *waiter)
 
- Public Member Functions inherited from cortex::BaseCoroutine
virtual ~BaseCoroutine ()=0
 Pure virtual destructor.
 
bool IsDone () const noexcept
 Checks if the coroutine has finished its execution.
 
void Resume ()
 Resumes the execution of the coroutine.
 

Static Public Member Functions

static std::unique_ptr< FiberMake (Body body, std::size_t stack_size, MemoryResourceSharedPtr resource)
 

Additional Inherited Members

- Protected Member Functions inherited from cortex::BaseCoroutine
 BaseCoroutine (std::size_t stack_size_bytes=262144, MemoryResourceSharedPtr resource=GetDefaultMemoryResource())
 Constructs a new BaseCoroutine.
 

Member Typedef Documentation

◆ Body

◆ Id

Constructor & Destructor Documentation

◆ Fiber() [1/3]

cortex::tiny_fiber::detail::Fiber::Fiber ( PrivateTag  ,
Id  id,
Body  body,
std::size_t  stack_size,
MemoryResourceSharedPtr  resource 
)

◆ ~Fiber()

cortex::tiny_fiber::detail::Fiber::~Fiber ( )
overridedefault

◆ Fiber() [2/3]

cortex::tiny_fiber::detail::Fiber::Fiber ( const Fiber )
delete

◆ Fiber() [3/3]

cortex::tiny_fiber::detail::Fiber::Fiber ( Fiber &&  )
delete

Member Function Documentation

◆ AddWaiter()

void cortex::tiny_fiber::detail::Fiber::AddWaiter ( Fiber waiter)

◆ Complete()

std::vector< Fiber * > cortex::tiny_fiber::detail::Fiber::Complete ( )

◆ GetException()

std::exception_ptr cortex::tiny_fiber::detail::Fiber::GetException ( ) const
inlinenoexcept

◆ GetId()

Id cortex::tiny_fiber::detail::Fiber::GetId ( ) const
inlinenoexcept

◆ HasException()

bool cortex::tiny_fiber::detail::Fiber::HasException ( ) const
inlinenoexcept

◆ IsSuspended()

bool cortex::tiny_fiber::detail::Fiber::IsSuspended ( ) const
inlinenoexcept

◆ Make()

static std::unique_ptr< Fiber > cortex::tiny_fiber::detail::Fiber::Make ( Body  body,
std::size_t  stack_size,
MemoryResourceSharedPtr  resource 
)
static

◆ operator=() [1/2]

Fiber & cortex::tiny_fiber::detail::Fiber::operator= ( const Fiber )
delete

◆ operator=() [2/2]

Fiber & cortex::tiny_fiber::detail::Fiber::operator= ( Fiber &&  )
delete

◆ Park()

void cortex::tiny_fiber::detail::Fiber::Park ( )

◆ Run()

void cortex::tiny_fiber::detail::Fiber::Run ( )

◆ SetException()

void cortex::tiny_fiber::detail::Fiber::SetException ( std::exception_ptr  ex)
inlinenoexcept

◆ Wake()

void cortex::tiny_fiber::detail::Fiber::Wake ( )

◆ Yield()

void cortex::tiny_fiber::detail::Fiber::Yield ( )

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