|  | ezEngine Release 25.08
    | 
Base class for all subsystems. More...
#include <SubSystem.h>

| 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. | |
| Friends | |
| class | ezStartup | 
| Additional Inherited Members | |
|  Static Public Member Functions inherited from ezNoBase | |
| static const ezRTTI * | GetStaticRTTI () | 
|  Protected Attributes inherited from ezEnumerable< ezSubSystem > | |
| ezEnumerable * | m_pNextInstance | 
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.