This is a Mezzanine::Threading::iWorkUnit for the multi-threaded processing of physics simulations. More...
#include <physicsmanager.h>
Public Member Functions | |
SimulationMonopolyWorkUnit (PhysicsManager *Target) | |
Class constructor. More... | |
virtual | ~SimulationMonopolyWorkUnit () |
Class destructor. | |
virtual void | DoWork (Threading::DefaultThreadSpecificStorage::Type &CurrentThreadStorage) |
This does any required update of the Graphical Scene graph and REnders one frame. More... | |
virtual void | UseThreads (const Whole &AmountToUse) |
Sets the number of threads this work unit is allowed to use during it's monopoly. More... | |
virtual Whole | UsingThreadCount () |
Gets the number of threads this work unit will attempt to use during it's monopoly. More... | |
Public Member Functions inherited from Mezzanine::Threading::MonopolyWorkUnit | |
virtual | ~MonopolyWorkUnit () |
A virtual destructor, currently empty. | |
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 iWorkUnit * | GetDependency (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 | |
SimulationMonopolyWorkUnit (const SimulationMonopolyWorkUnit &Other) | |
Protected copy constructor. THIS IS NOT ALLOWED. More... | |
SimulationMonopolyWorkUnit & | operator= (const SimulationMonopolyWorkUnit &Other) |
Protected assignment operator. THIS IS NOT ALLOWED. More... | |
Protected Attributes | |
PhysicsManager * | TargetManager |
A pointer to the manager this work unit is processing. More... | |
This is a Mezzanine::Threading::iWorkUnit for the multi-threaded processing of physics simulations.
Definition at line 129 of file physicsmanager.h.
|
protected |
Protected copy constructor. THIS IS NOT ALLOWED.
Other | The other work unit being copied from. WHICH WILL NEVER HAPPEN. |
Definition at line 277 of file physicsmanager.cpp.
Mezzanine::Physics::SimulationMonopolyWorkUnit::SimulationMonopolyWorkUnit | ( | PhysicsManager * | Target) |
Class constructor.
Target | The PhysicsManager this work unit will process during the frame. |
Definition at line 283 of file physicsmanager.cpp.
|
virtual |
This does any required update of the Graphical Scene graph and REnders one frame.
CurrentThreadStorage | The storage class for all resources owned by this work unit during it's execution. |
Implements Mezzanine::Threading::iWorkUnit.
Definition at line 302 of file physicsmanager.cpp.
|
protected |
Protected assignment operator. THIS IS NOT ALLOWED.
Other | The other work unit being copied from. WHICH WILL NEVER HAPPEN. |
Definition at line 280 of file physicsmanager.cpp.
|
virtual |
Sets the number of threads this work unit is allowed to use during it's monopoly.
AmountToUse | The number of threads permitted for use. |
Implements Mezzanine::Threading::MonopolyWorkUnit.
Definition at line 292 of file physicsmanager.cpp.
|
virtual |
Gets the number of threads this work unit will attempt to use during it's monopoly.
Implements Mezzanine::Threading::MonopolyWorkUnit.
Definition at line 297 of file physicsmanager.cpp.
|
protected |
A pointer to the manager this work unit is processing.
Definition at line 134 of file physicsmanager.h.