46 #if !defined(SWIG) || defined(SWIG_THREADING) // Do not read when in swig and not in the threading module
89 virtual Whole GetImmediateDependencyCount()
const = 0;
97 virtual Whole GetDependencyCount()
const = 0;
102 virtual void AddDependency(
iWorkUnit* NewDependency) = 0;
106 virtual void RemoveDependency(
iWorkUnit* RemoveDependency) = 0;
109 virtual void ClearDependencies() = 0;
113 virtual bool IsEveryDependencyComplete() = 0;
128 virtual void PrepareForNextFrame() = 0;
136 virtual Whole GetPerformance()
const = 0;
201 virtual Whole GetImmediateDependencyCount()
const;
203 virtual Whole GetDependencyCount()
const;
206 virtual void AddDependency(
iWorkUnit* NewDependency);
208 virtual void RemoveDependency(
iWorkUnit* RemoveDependency);
210 virtual void ClearDependencies();
212 virtual bool IsEveryDependencyComplete();
221 virtual void PrepareForNextFrame();
226 virtual Whole GetPerformance()
const;
int32_t Int32
An 32-bit integer.
Use this to get the default rolling average for a given type.
Any enumerations the threading library requires are all declared here.
Stores data about a single work unit so that it can easily be sorted.
Int32 CurrentRunningState
This controls do work with this after it has.
RunningState
Used to track whether a thread has started, completed, etc...
Default implementation of WorkUnit. This represents on piece of work through time.
std::vector< iWorkUnit * > Dependencies
A collection of of workunits that must be complete before this one can start.
virtual ~iWorkUnit()
Virtual destructor.
All the definitions for datatypes as well as some basic conversion functions are defined here...
Interface of a WorkUnit. This represents on piece of work through time.
This file defines a minimalistic cross-platform thread that the scheduler uses to schedule tasks...
A thread specific collection of double-buffered and algorithm specific resources. ...
This file has the Declarations for the main FrameScheduler class.
This is central object in this algorithm, it is responsible for spawning threads and managing the ord...
This file defines the metadata used to sort workunits.
The interface for rolling averages used in the Mezzanine, and threading library.
This file declares and defines a mutex that is a partial implementation.
This stores the implementation and the declaration of the RollingAverage, BufferedRollingAverage, WeightedRollingAverage and the DefaultRollingAverage.
The bulk of the engine components go in this namspace.
unsigned long Whole
Whole is an unsigned integer, it will be at least 32bits in size.
DefaultRollingAverage< Whole >::Type PerformanceLog
A rolling average of execution times.