#pragma once #include namespace NGL { class Settings; } namespace N_AppComponent { class IAppComponent { public: IAppComponent() = default; virtual ~IAppComponent() = default; virtual int32_t create(NGL::Settings *settings) = 0; virtual int32_t deinit() = 0; virtual int32_t destroy() = 0; virtual int32_t init() = 0; virtual int32_t start() = 0; virtual int32_t stop() = 0; inline const QString& getName() const { return m_Name; } inline void setName(const QString& newVal) { m_Name = newVal; } protected: QString m_Name; }; }