From 6d956657c4612e988f89a133cea93e50ec2dcb39 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Fri, 2 Aug 2013 10:04:38 +0200 Subject: Adding AtStartAsTask and AtExitAsTask concepts. --- includes/AtStartExit.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'includes/AtStartExit.h') diff --git a/includes/AtStartExit.h b/includes/AtStartExit.h index 97dc533..4cd49a5 100644 --- a/includes/AtStartExit.h +++ b/includes/AtStartExit.h @@ -2,6 +2,9 @@ namespace Balau { +class Task; +class BootstrapTask; + class AtStart { protected: AtStart(int priority = 0); @@ -28,4 +31,30 @@ class AtExit { friend class Main; }; +class AtStartAsTask { + protected: + AtStartAsTask(int priority = 0); + virtual Task * createStartTask() = 0; + private: + AtStartAsTask(const AtStartAsTask &) = delete; + AtStart & operator=(const AtStartAsTask &) = delete; + const int m_priority; + AtStartAsTask * m_next; + static AtStartAsTask * s_head; + friend class BootstrapTask; +}; + +class AtExitAsTask { + protected: + AtExitAsTask(int priority = 0); + virtual Task * createExitTask() = 0; + private: + AtExitAsTask(const AtExit &) = delete; + AtExitAsTask & operator=(const AtExitAsTask &) = delete; + const int m_priority; + AtExitAsTask * m_next; + static AtExitAsTask * s_head; + friend class BootstrapTask; +}; + }; -- cgit v1.2.3