diff mde/setup/exception.d @ 85:56c0ddd90193

Intermediate commit (not stable). Changes to init system.
author Diggory Hardy <diggory.hardy@gmail.com>
date Thu, 11 Sep 2008 11:33:51 +0100
parents 66d555da083e
children
line wrap: on
line diff
--- a/mde/setup/exception.d	Sun Aug 31 15:59:17 2008 +0100
+++ b/mde/setup/exception.d	Thu Sep 11 11:33:51 2008 +0100
@@ -13,7 +13,8 @@
 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
-/// Contains the exception classes for Init.
+/** Contains the exception classes for Init, and the StageState type to remove the need for init
+ * functions to import other Init modules. */
 module mde.setup.exception;
 
 import mde.exception;
@@ -29,9 +30,18 @@
     }
 }
 
-/// Thrown when an init stage fails.
+/// State of an InitStage.
+enum StageState : byte {
+    INACTIVE = 0,                   /// run init on startup
+    ACTIVE = 1,                     /// run cleanup on shutdown
+    ERROR = -1,                     /// locked; don't run init or cleanup
+}
+
+/// May be thrown when an init or cleanup function fails to explicitly set the stage's state.
 class InitStageException : InitException {
-    this () {
+    this (StageState s) {
+        state = s;
         super("");
     }
+    StageState state;
 }