ezEngine  Release 25.03
ezSubSystem Class Referenceabstract

Base class for all subsystems. More...

#include <SubSystem.h>

Inheritance diagram for ezSubSystem:

Public Member Functions

virtual ezStringView GetSubSystemName () const =0
 Returns the name of the subsystem. Must be overridden.
 
virtual ezStringView GetGroupName () const =0
 Returns the name of the group to which this subsystem belongs. Must be overridden.
 
virtual ezStringView GetDependency (ezInt32 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.
 
ezStringView GetPluginName () const
 Returns the plugin name to which this subsystem belongs.
 
bool IsStartupPhaseDone (ezStartupStage::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 ezStartup
 

Additional Inherited Members

- Static Public Member Functions inherited from ezNoBase
static const ezRTTIGetStaticRTTI ()
 
- Protected Attributes inherited from ezEnumerable< ezSubSystem >
ezEnumerablem_pNextInstance
 

Detailed Description

Base class for all subsystems.

ezStartup 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 EZ_BEGIN_SUBSYSTEM_DECLARATION, EZ_END_SUBSYSTEM_DECLARATION etc. Those macros will create a wrapper object (derived from ezSubSystem) to handle initialization.


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