![]() |
Plasma Engine
2.0
|
Base class for all subsystems. More...
#include <SubSystem.h>
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. | |
Friends | |
class | plStartup |
Additional Inherited Members | |
![]() | |
static const plRTTI * | GetStaticRTTI () |
![]() | |
plEnumerable * | m_pNextInstance |
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.