diff Core/SQLite/OrthancSQLiteException.h @ 1585:9a3e03d6a4d5

fix sqlite standalone build
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 25 Aug 2015 19:33:18 +0200
parents 63d47b1fa239
children b1291df2f780
line wrap: on
line diff
--- a/Core/SQLite/OrthancSQLiteException.h	Tue Aug 25 17:59:04 2015 +0200
+++ b/Core/SQLite/OrthancSQLiteException.h	Tue Aug 25 19:33:18 2015 +0200
@@ -45,17 +45,99 @@
 {
   namespace SQLite
   {
+    // Auto-generated by "Resources/GenerateErrorCodes.py"
+    enum ErrorCode
+    {
+      ErrorCode_ParameterOutOfRange,
+      ErrorCode_BadParameterType,
+      ErrorCode_SQLiteNotOpened,
+      ErrorCode_SQLiteAlreadyOpened,
+      ErrorCode_SQLiteCannotOpen,
+      ErrorCode_SQLiteStatementAlreadyUsed,
+      ErrorCode_SQLiteExecute,
+      ErrorCode_SQLiteRollbackWithoutTransaction,
+      ErrorCode_SQLiteCommitWithoutTransaction,
+      ErrorCode_SQLiteRegisterFunction,
+      ErrorCode_SQLiteFlush,
+      ErrorCode_SQLiteCannotRun,
+      ErrorCode_SQLiteCannotStep,
+      ErrorCode_SQLiteBindOutOfRange,
+      ErrorCode_SQLitePrepareStatement,
+      ErrorCode_SQLiteTransactionAlreadyStarted,
+      ErrorCode_SQLiteTransactionCommit,
+      ErrorCode_SQLiteTransactionBegin
+    };
+
     class OrthancSQLiteException : public ::std::runtime_error
     {
     public:
-      OrthancSQLiteException(const std::string& what) :
-        ::std::runtime_error(what)
+      OrthancSQLiteException(ErrorCode error) :
+        ::std::runtime_error(EnumerationToString(error))
       {
       }
 
-      OrthancSQLiteException(const char* what) : 
-        ::std::runtime_error(what)
+      // Auto-generated by "Resources/GenerateErrorCodes.py"
+      static const char* EnumerationToString(ErrorCode code)
       {
+        switch (code)
+        {
+          case ErrorCode_ParameterOutOfRange:
+            return "Parameter out of range";
+
+          case ErrorCode_BadParameterType:
+            return "Bad type for a parameter";
+
+          case ErrorCode_SQLiteNotOpened:
+            return "SQLite: The database is not opened";
+
+          case ErrorCode_SQLiteAlreadyOpened:
+            return "SQLite: Connection is already open";
+
+          case ErrorCode_SQLiteCannotOpen:
+            return "SQLite: Unable to open the database";
+
+          case ErrorCode_SQLiteStatementAlreadyUsed:
+            return "SQLite: This cached statement is already being referred to";
+
+          case ErrorCode_SQLiteExecute:
+            return "SQLite: Cannot execute a command";
+
+          case ErrorCode_SQLiteRollbackWithoutTransaction:
+            return "SQLite: Rolling back a nonexistent transaction (have you called Begin()?)";
+
+          case ErrorCode_SQLiteCommitWithoutTransaction:
+            return "SQLite: Committing a nonexistent transaction";
+
+          case ErrorCode_SQLiteRegisterFunction:
+            return "SQLite: Unable to register a function";
+
+          case ErrorCode_SQLiteFlush:
+            return "SQLite: Unable to flush the database";
+
+          case ErrorCode_SQLiteCannotRun:
+            return "SQLite: Cannot run a cached statement";
+
+          case ErrorCode_SQLiteCannotStep:
+            return "SQLite: Cannot step over a cached statement";
+
+          case ErrorCode_SQLiteBindOutOfRange:
+            return "SQLite: Bing a value while out of range (serious error)";
+
+          case ErrorCode_SQLitePrepareStatement:
+            return "SQLite: Cannot prepare a cached statement";
+
+          case ErrorCode_SQLiteTransactionAlreadyStarted:
+            return "SQLite: Beginning the same transaction twice";
+
+          case ErrorCode_SQLiteTransactionCommit:
+            return "SQLite: Failure when committing the transaction";
+
+          case ErrorCode_SQLiteTransactionBegin:
+            return "SQLite: Cannot start a transaction";
+
+          default:
+            return "Unknown error code";
+        }
       }
     };
   }