XII Release 0.1.0
Loading...
Searching...
No Matches
xiiSubSystem Class Referenceabstract

Base class for all subsystems. More...

#include <SubSystem.h>

Inheritance diagram for xiiSubSystem:
[legend]

Public Member Functions

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

Additional Inherited Members

- Static Public Member Functions inherited from xiiNoBase
static const xiiRTTIGetStaticRTTI ()
 
- Protected Attributes inherited from xiiEnumerable< xiiSubSystem >
xiiEnumerablem_pNextInstance
 

Detailed Description

Base class for all subsystems.

xiiStartup 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 XII_BEGIN_SUBSYSTEM_DECLARATION, XII_END_SUBSYSTEM_DECLARATION etc. Those macros will create a wrapper object (derived from xiiSubSystem) to handle initialization.


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