Plasma Engine  2.0
Loading...
Searching...
No Matches
plSubSystem Class Referenceabstract

Base class for all subsystems. More...

#include <SubSystem.h>

Inheritance diagram for plSubSystem:

Public Member Functions

virtual plStringView GetSubSystemName () const =0
 Returns the name of the subsystem. Must be overridden.
 
virtual plStringView GetGroupName () const =0
 Returns the name of the group to which this subsystem belongs. Must be overridden.
 
virtual plStringView GetDependency (plInt32 iDep)
 Returns a series of strings with the names of the subsystem, which this subsystem depends on. nullptr indicates the last entry. Must be overridden.
 
plStringView GetPluginName () const
 Returns the plugin name to which this subsystem belongs.
 
bool IsStartupPhaseDone (plStartupStage::Enum stage) const
 Returns whether the given startup stage has been done on this subsystem.
 

Private Member Functions

virtual void OnBaseSystemsStartup ()
 This will be called to initialize the subsystems base components. Can be overridden to handle this event.
 
virtual void OnCoreSystemsStartup ()
 This will be called to initialize the subsystems core components. Can be overridden to handle this event.
 
virtual void OnCoreSystemsShutdown ()
 This will be called to shut down the subsystems core components. Can be overridden to handle this event.
 
virtual void OnHighLevelSystemsStartup ()
 This will be called to initialize the subsystems engine / rendering components. Can be overridden to handle this event.
 
virtual void OnHighLevelSystemsShutdown ()
 This will be called to shut down the subsystems engine / rendering components. Can be overridden to handle this event.
 

Friends

class plStartup
 

Additional Inherited Members

- Static Public Member Functions inherited from plNoBase
static const plRTTIGetStaticRTTI ()
 
- Protected Attributes inherited from plEnumerable< plSubSystem >
plEnumerablem_pNextInstance
 

Detailed Description

Base class for all subsystems.

plStartup will initialize and shut down all instances of this class, according to their dependencies etc. If you have a subsystem that is a non-static class, just derive from this base class and override the virtual functions as required. If you have a subsystem that is implemented in a purely static way (there is no class instance), just use the macros PL_BEGIN_SUBSYSTEM_DECLARATION, PL_END_SUBSYSTEM_DECLARATION etc. Those macros will create a wrapper object (derived from plSubSystem) to handle initialization.


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