Spinning Topp Logo BlackTopp Studios
inc
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Mezzanine::EventPumpWorkUnit Class Reference

Every frame the OS must be queried for changes to the state, this does that querying on behalf of an eventmanager. More...

#include <eventmanager.h>

+ Inheritance diagram for Mezzanine::EventPumpWorkUnit:
+ Collaboration diagram for Mezzanine::EventPumpWorkUnit:

Public Member Functions

 EventPumpWorkUnit (EventManager *Target)
 Create the WorkUnit for getting updates from the OS. More...
 
virtual ~EventPumpWorkUnit ()
 Virtual Deconstructor.
 
virtual void DoWork (Threading::DefaultThreadSpecificStorage::Type &CurrentThreadStorage)
 This does the actual work of the getting the data form the OS. More...
 
- Public Member Functions inherited from Mezzanine::Threading::DefaultWorkUnit
 DefaultWorkUnit ()
 Simple constructor.
 
virtual ~DefaultWorkUnit ()
 Virtual destructor, doesn't actually do much.
 
virtual void AddDependency (iWorkUnit *NewDependency)
 Force this WorkUnit to Start after another has completed. More...
 
virtual void ClearDependencies ()
 Drop any information about what work units this one depends on.
 
virtual iWorkUnitGetDependency (Whole Index) const
 This is used to iterate of all the dependencies. More...
 
virtual Whole GetDependencyCount () const
 How many other WorkUnits does this one depend on? More...
 
virtual Whole GetDependentCount (FrameScheduler &SchedulerToCount)
 This returns the count workunits that depend on this work unit. More...
 
virtual Whole GetImmediateDependencyCount () const
 Get the amount of dependencies that directly count on this for access purposes. More...
 
virtual Whole GetPerformance () const
 Get the internal rolling average for querying. More...
 
virtual RollingAverage< Whole > & GetPerformanceLog ()
 Get the internal rolling average for querying. More...
 
virtual RunningState GetRunningState () const
 Retrieves the current RunningState of the thread. More...
 
virtual WorkUnitKey GetSortingKey (FrameScheduler &SchedulerToCount)
 Get the sorting metadata. More...
 
virtual bool IsEveryDependencyComplete ()
 Check if this WorkUnit could concievably run right now. More...
 
virtual void operator() (DefaultThreadSpecificStorage::Type &CurrentThreadStorage)
 This does everything required to track metadata and log work. More...
 
virtual void PrepareForNextFrame ()
 This resets the running state and takes any further action required to use the WorkUnit again.
 
virtual void RemoveDependency (iWorkUnit *RemoveDependency)
 Remove a dependency. More...
 
virtual RunningState TakeOwnerShip ()
 Attempts to atomically start the work unit in the current thread. More...
 
- Public Member Functions inherited from Mezzanine::Threading::iWorkUnit
virtual ~iWorkUnit ()
 Virtual destructor.
 

Protected Member Functions

 EventPumpWorkUnit (const EventPumpWorkUnit &Other)
 Protected copy constructor. THIS IS NOT ALLOWED. More...
 
EventPumpWorkUnitoperator= (const EventPumpWorkUnit &Other)
 Protected assignment operator. THIS IS NOT ALLOWED. More...
 

Protected Attributes

EventManagerTargetManager
 The Manager this does the work for. More...
 
- Protected Attributes inherited from Mezzanine::Threading::DefaultWorkUnit
Int32 CurrentRunningState
 This controls do work with this after it has.
 
std::vector< iWorkUnit * > Dependencies
 A collection of of workunits that must be complete before this one can start.
 
DefaultRollingAverage< Whole >::Type PerformanceLog
 A rolling average of execution times.
 

Detailed Description

Every frame the OS must be queried for changes to the state, this does that querying on behalf of an eventmanager.

Definition at line 108 of file eventmanager.h.

Constructor & Destructor Documentation

Mezzanine::EventPumpWorkUnit::EventPumpWorkUnit ( const EventPumpWorkUnit Other)
protected

Protected copy constructor. THIS IS NOT ALLOWED.

Parameters
OtherThe other work unit being copied from. WHICH WILL NEVER HAPPEN.

Definition at line 68 of file eventmanager.cpp.

Mezzanine::EventPumpWorkUnit::EventPumpWorkUnit ( EventManager Target)

Create the WorkUnit for getting updates from the OS.

Parameters
TargetThe Manager to save this data in.

Definition at line 74 of file eventmanager.cpp.

Member Function Documentation

void Mezzanine::EventPumpWorkUnit::DoWork ( Threading::DefaultThreadSpecificStorage::Type CurrentThreadStorage)
virtual

This does the actual work of the getting the data form the OS.

Parameters
CurrentThreadStorageOnly really used for the logger.

Implements Mezzanine::Threading::iWorkUnit.

Definition at line 83 of file eventmanager.cpp.

EventPumpWorkUnit & Mezzanine::EventPumpWorkUnit::operator= ( const EventPumpWorkUnit Other)
protected

Protected assignment operator. THIS IS NOT ALLOWED.

Parameters
OtherThe other work unit being copied from. WHICH WILL NEVER HAPPEN.

Definition at line 71 of file eventmanager.cpp.

Member Data Documentation

EventManager* Mezzanine::EventPumpWorkUnit::TargetManager
protected

The Manager this does the work for.

Definition at line 113 of file eventmanager.h.


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