The Pedigree Project 0.1
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
Event::Delivery Class Reference

#include <Event.h>

+ Collaboration diagram for Event::Delivery:

Public Member Functions

 Delivery (Delivery &&other) noexcept
 
Deliveryoperator= (Delivery &&other) noexcept
 
Eventget () const
 
Eventoperator-> () const
 
 operator bool () const
 
void reset ()
 

Private Member Functions

 Delivery (Event *event, Thread *thread)
 
void beginDispatch ()
 
 Delivery (const Delivery &)=delete
 
Deliveryoperator= (const Delivery &)=delete
 

Private Attributes

Eventm_pEvent
 
Threadm_pThread
 
Deliverym_pPreviousActive
 
Deliverym_pNextActive
 
bool m_bActive
 

Friends

class Event
 
class Thread
 
class PerProcessorScheduler
 

Detailed Description

Owns one event delivery after it has left a Thread's queue.

The enqueue registration remains live until this object is destroyed, so an Event owner can safely wait for an in-flight scheduler delivery.

Definition at line 123 of file Event.h.

Constructor & Destructor Documentation

◆ Delivery() [1/3]

Event::Delivery::Delivery ( )

Definition at line 108 of file Event.cc.

◆ Delivery() [2/3]

Event::Delivery::Delivery ( Delivery &&  other)
noexcept

Definition at line 122 of file Event.cc.

◆ ~Delivery()

Event::Delivery::~Delivery ( )

Definition at line 135 of file Event.cc.

◆ Delivery() [3/3]

Event::Delivery::Delivery ( Event event,
Thread thread 
)
private

Definition at line 115 of file Event.cc.

Member Function Documentation

◆ beginDispatch()

void Event::Delivery::beginDispatch ( )
private

Definition at line 153 of file Event.cc.

◆ get()

Event * Event::Delivery::get ( ) const
inline

Definition at line 131 of file Event.h.

◆ operator bool()

Event::Delivery::operator bool ( ) const
inlineexplicit

Definition at line 139 of file Event.h.

◆ operator->()

Event * Event::Delivery::operator-> ( ) const
inline

Definition at line 135 of file Event.h.

◆ operator=()

Event::Delivery & Event::Delivery::operator= ( Delivery &&  other)
noexcept

Definition at line 139 of file Event.cc.

◆ reset()

void Event::Delivery::reset ( )

Completes this delivery before the end of the enclosing scope.

Definition at line 159 of file Event.cc.

Referenced by PerProcessorScheduler::checkEventState().

+ Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ Event

friend class Event
friend

Definition at line 147 of file Event.h.

◆ PerProcessorScheduler

friend class PerProcessorScheduler
friend

Definition at line 149 of file Event.h.

◆ Thread

friend class Thread
friend

Definition at line 148 of file Event.h.

Member Data Documentation

◆ m_bActive

bool Event::Delivery::m_bActive
private

Definition at line 161 of file Event.h.

◆ m_pEvent

Event* Event::Delivery::m_pEvent
private

Definition at line 157 of file Event.h.

◆ m_pNextActive

Delivery* Event::Delivery::m_pNextActive
private

Definition at line 160 of file Event.h.

◆ m_pPreviousActive

Delivery* Event::Delivery::m_pPreviousActive
private

Definition at line 159 of file Event.h.

◆ m_pThread

Thread* Event::Delivery::m_pThread
private

Definition at line 158 of file Event.h.


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