changeset 186:6fe74f9a516e

cppcheck
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 16 Dec 2020 15:05:19 +0100
parents 7c46155b5bb4
children 0b78198c28d6
files Framework/Common/BinaryStringValue.h Framework/Common/FileValue.h Framework/Common/GenericFormatter.h Framework/Common/ImplicitTransaction.h Framework/Common/Integer64Value.h Framework/Common/NullValue.h Framework/Common/ResultBase.h Framework/Common/Utf8StringValue.h Framework/MySQL/MySQLDatabase.cpp Framework/MySQL/MySQLDatabase.h Framework/MySQL/MySQLParameters.cpp Framework/MySQL/MySQLParameters.h Framework/MySQL/MySQLResult.h Framework/MySQL/MySQLStatement.cpp Framework/MySQL/MySQLStatement.h Framework/MySQL/MySQLTransaction.h Framework/Plugins/StorageBackend.h Framework/PostgreSQL/PostgreSQLDatabase.cpp Framework/PostgreSQL/PostgreSQLDatabase.h Framework/PostgreSQL/PostgreSQLParameters.h Framework/PostgreSQL/PostgreSQLStatement.cpp Framework/PostgreSQL/PostgreSQLStatement.h Framework/PostgreSQL/PostgreSQLTransaction.h Framework/SQLite/SQLiteDatabase.cpp Framework/SQLite/SQLiteDatabase.h Framework/SQLite/SQLiteResult.h Framework/SQLite/SQLiteStatement.h Framework/SQLite/SQLiteTransaction.h MySQL/Plugins/MySQLStorageArea.h PostgreSQL/Plugins/PostgreSQLStorageArea.h
diffstat 30 files changed, 121 insertions(+), 101 deletions(-) [+]
line wrap: on
line diff
--- a/Framework/Common/BinaryStringValue.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/Common/BinaryStringValue.h	Wed Dec 16 15:05:19 2020 +0100
@@ -23,6 +23,8 @@
 
 #include "IValue.h"
 
+#include <Compatibility.h>
+
 namespace OrthancDatabases
 {
   class BinaryStringValue : public IValue
@@ -66,13 +68,13 @@
       return content_.size();
     }
 
-    virtual ValueType GetType() const
+    virtual ValueType GetType() const ORTHANC_OVERRIDE
     {
       return ValueType_BinaryString;
     }
     
-    virtual IValue* Convert(ValueType target) const;
+    virtual IValue* Convert(ValueType target) const ORTHANC_OVERRIDE;
 
-    virtual std::string Format() const;
+    virtual std::string Format() const ORTHANC_OVERRIDE;
   };
 }
--- a/Framework/Common/FileValue.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/Common/FileValue.h	Wed Dec 16 15:05:19 2020 +0100
@@ -23,6 +23,8 @@
 
 #include "IValue.h"
 
+#include <Compatibility.h>
+
 namespace OrthancDatabases
 {
   class FileValue : public IValue
@@ -76,13 +78,13 @@
       return content_.size();
     }
 
-    virtual ValueType GetType() const
+    virtual ValueType GetType() const ORTHANC_OVERRIDE
     {
       return ValueType_File;
     }
     
-    virtual IValue* Convert(ValueType target) const;
+    virtual IValue* Convert(ValueType target) const ORTHANC_OVERRIDE;
 
-    virtual std::string Format() const;
+    virtual std::string Format() const ORTHANC_OVERRIDE;
   };
 }
--- a/Framework/Common/GenericFormatter.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/Common/GenericFormatter.h	Wed Dec 16 15:05:19 2020 +0100
@@ -23,6 +23,8 @@
 
 #include "Query.h"
 
+#include <Compatibility.h>
+
 namespace OrthancDatabases
 {
   class GenericFormatter : public Query::IParameterFormatter
@@ -38,9 +40,9 @@
     {
     }
     
-    void Format(std::string& target,
-                const std::string& source,
-                ValueType type);
+    virtual void Format(std::string& target,
+                        const std::string& source,
+                        ValueType type) ORTHANC_OVERRIDE;
 
     size_t GetParametersCount() const
     {
--- a/Framework/Common/ImplicitTransaction.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/Common/ImplicitTransaction.h	Wed Dec 16 15:05:19 2020 +0100
@@ -23,6 +23,8 @@
 
 #include "ITransaction.h"
 
+#include <Compatibility.h>
+
 namespace OrthancDatabases
 {
   class ImplicitTransaction : public ITransaction
@@ -52,25 +54,25 @@
 
     virtual ~ImplicitTransaction();
     
-    virtual bool IsImplicit() const
+    virtual bool IsImplicit() const ORTHANC_OVERRIDE
     {
       return true;
     }
     
-    virtual bool IsReadOnly() const
+    virtual bool IsReadOnly() const ORTHANC_OVERRIDE
     {
       return readOnly_;
     }
 
-    virtual void Rollback();
+    virtual void Rollback() ORTHANC_OVERRIDE;
     
-    virtual void Commit();
+    virtual void Commit() ORTHANC_OVERRIDE;
     
     virtual IResult* Execute(IPrecompiledStatement& statement,
-                             const Dictionary& parameters);
+                             const Dictionary& parameters) ORTHANC_OVERRIDE;
 
     virtual void ExecuteWithoutResult(IPrecompiledStatement& statement,
-                                      const Dictionary& parameters);
+                                      const Dictionary& parameters) ORTHANC_OVERRIDE;
 
     static void SetErrorOnDoubleExecution(bool isError);
 
--- a/Framework/Common/Integer64Value.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/Common/Integer64Value.h	Wed Dec 16 15:05:19 2020 +0100
@@ -23,6 +23,8 @@
 
 #include "IValue.h"
 
+#include <Compatibility.h>
+
 #include <stdint.h>
 
 namespace OrthancDatabases
@@ -43,13 +45,13 @@
       return value_;
     }
 
-    virtual ValueType GetType() const
+    virtual ValueType GetType() const ORTHANC_OVERRIDE
     {
       return ValueType_Integer64;
     }
     
-    virtual IValue* Convert(ValueType target) const;
+    virtual IValue* Convert(ValueType target) const ORTHANC_OVERRIDE;
 
-    virtual std::string Format() const;
+    virtual std::string Format() const ORTHANC_OVERRIDE;
   };
 }
--- a/Framework/Common/NullValue.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/Common/NullValue.h	Wed Dec 16 15:05:19 2020 +0100
@@ -23,19 +23,21 @@
 
 #include "IValue.h"
 
+#include <Compatibility.h>
+
 namespace OrthancDatabases
 {
   class NullValue : public IValue
   {
   public:
-    virtual ValueType GetType() const
+    virtual ValueType GetType() const ORTHANC_OVERRIDE
     {
       return ValueType_Null;
     }
 
-    virtual IValue* Convert(ValueType target) const;
+    virtual IValue* Convert(ValueType target) const ORTHANC_OVERRIDE;
 
-    virtual std::string Format() const
+    virtual std::string Format() const ORTHANC_OVERRIDE
     {
       return "(null)";
     }
--- a/Framework/Common/ResultBase.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/Common/ResultBase.h	Wed Dec 16 15:05:19 2020 +0100
@@ -23,6 +23,8 @@
 
 #include "IResult.h"
 
+#include <Compatibility.h>
+
 #include <vector>
 
 namespace OrthancDatabases
@@ -52,13 +54,13 @@
     }
 
     virtual void SetExpectedType(size_t field,
-                                 ValueType type);
+                                 ValueType type) ORTHANC_OVERRIDE;
 
-    virtual size_t GetFieldsCount() const
+    virtual size_t GetFieldsCount() const ORTHANC_OVERRIDE
     {
       return fields_.size();
     }
 
-    virtual const IValue& GetField(size_t index) const;
+    virtual const IValue& GetField(size_t index) const ORTHANC_OVERRIDE;
   };
 }
--- a/Framework/Common/Utf8StringValue.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/Common/Utf8StringValue.h	Wed Dec 16 15:05:19 2020 +0100
@@ -23,6 +23,8 @@
 
 #include "IValue.h"
 
+#include <Compatibility.h>
+
 namespace OrthancDatabases
 {
   // Represents an UTF-8 string
@@ -51,14 +53,14 @@
       return utf8_;
     }
 
-    virtual ValueType GetType() const
+    virtual ValueType GetType() const ORTHANC_OVERRIDE
     {
       return ValueType_Utf8String;
     }
     
-    virtual IValue* Convert(ValueType target) const;
+    virtual IValue* Convert(ValueType target) const ORTHANC_OVERRIDE;
 
-    virtual std::string Format() const
+    virtual std::string Format() const ORTHANC_OVERRIDE
     {
       return "[" + utf8_ + "]";
     }
--- a/Framework/MySQL/MySQLDatabase.cpp	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/MySQL/MySQLDatabase.cpp	Wed Dec 16 15:05:19 2020 +0100
@@ -326,14 +326,14 @@
 
     query.SetType("lock", ValueType_Utf8String);
     
-    MySQLStatement statement(*this, query);
-
     Dictionary args;
     args.SetUtf8Value("lock", prefix + "." + lock);
 
     bool success;
 
     {
+      MySQLStatement statement(*this, query);
+
       MySQLTransaction t(*this);
       std::unique_ptr<IResult> result(t.Execute(statement, args));
 
@@ -460,7 +460,7 @@
     return (!result->IsDone() &&
             result->GetFieldsCount() == 1 &&
             result->GetField(0).GetType() == ValueType_Integer64 &&
-            dynamic_cast<const Integer64Value&>(result->GetField(0)).GetValue() == 1);            
+            dynamic_cast<const Integer64Value&>(result->GetField(0)).GetValue() != 0);
   }
 
 
@@ -530,7 +530,7 @@
       }
       
     public:
-      MySQLImplicitTransaction(MySQLDatabase&  db) :
+      explicit MySQLImplicitTransaction(MySQLDatabase&  db) :
         db_(db)
       {
       }
--- a/Framework/MySQL/MySQLDatabase.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/MySQL/MySQLDatabase.h	Wed Dec 16 15:05:19 2020 +0100
@@ -48,7 +48,7 @@
                                   const std::string& lock);
 
   public:
-    MySQLDatabase(const MySQLParameters& parameters);
+    explicit MySQLDatabase(const MySQLParameters& parameters);
 
     virtual ~MySQLDatabase();
 
@@ -91,14 +91,14 @@
     bool DoesTriggerExist(MySQLTransaction& transaction,
                           const std::string& name);
 
-    virtual Dialect GetDialect() const
+    virtual Dialect GetDialect() const ORTHANC_OVERRIDE
     {
       return Dialect_MySQL;
     }
 
-    virtual IPrecompiledStatement* Compile(const Query& query);
+    virtual IPrecompiledStatement* Compile(const Query& query) ORTHANC_OVERRIDE;
 
-    virtual ITransaction* CreateTransaction(bool isImplicit);
+    virtual ITransaction* CreateTransaction(bool isImplicit) ORTHANC_OVERRIDE;
 
     static void GlobalFinalization();
 
--- a/Framework/MySQL/MySQLParameters.cpp	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/MySQL/MySQLParameters.cpp	Wed Dec 16 15:05:19 2020 +0100
@@ -46,13 +46,18 @@
   }
 
   
-  MySQLParameters::MySQLParameters()
+  MySQLParameters::MySQLParameters() :
+    ssl_(false),
+    verifySslServerCertificates_(true),
+    maxConnectionRetries_(10),
+    connectionRetryInterval_(5)
   {
     Reset();
   }
 
 
-  MySQLParameters::MySQLParameters(const OrthancPlugins::OrthancConfiguration& pluginConfiguration, const OrthancPlugins::OrthancConfiguration& orthancConfiguration)
+  MySQLParameters::MySQLParameters(const OrthancPlugins::OrthancConfiguration& pluginConfiguration,
+                                   const OrthancPlugins::OrthancConfiguration& orthancConfiguration)
   {
     Reset();
 
--- a/Framework/MySQL/MySQLParameters.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/MySQL/MySQLParameters.h	Wed Dec 16 15:05:19 2020 +0100
@@ -46,11 +46,12 @@
     unsigned int connectionRetryInterval_;
 
     void Reset();
-
+    
   public:
     MySQLParameters();
 
-    MySQLParameters(const OrthancPlugins::OrthancConfiguration& pluginConfiguration, const OrthancPlugins::OrthancConfiguration& orthancConfiguration);
+    MySQLParameters(const OrthancPlugins::OrthancConfiguration& pluginConfiguration,
+                    const OrthancPlugins::OrthancConfiguration& orthancConfiguration);
 
     const std::string& GetHost() const
     {
--- a/Framework/MySQL/MySQLResult.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/MySQL/MySQLResult.h	Wed Dec 16 15:05:19 2020 +0100
@@ -40,19 +40,19 @@
     void Step();
 
   protected:
-    virtual IValue* FetchField(size_t index);
+    virtual IValue* FetchField(size_t index) ORTHANC_OVERRIDE;
     
   public:
     MySQLResult(MySQLDatabase& db,
                 MySQLStatement& statement);
 
-    virtual ~MySQLResult();
+    virtual ~MySQLResult() ORTHANC_OVERRIDE;
     
-    virtual bool IsDone() const
+    virtual bool IsDone() const ORTHANC_OVERRIDE
     {
       return done_;
     }
 
-    virtual void Next();
+    virtual void Next() ORTHANC_OVERRIDE;
   };
 }
--- a/Framework/MySQL/MySQLStatement.cpp	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/MySQL/MySQLStatement.cpp	Wed Dec 16 15:05:19 2020 +0100
@@ -40,7 +40,7 @@
   class MySQLStatement::ResultField : public boost::noncopyable
   {
   private:     
-    IValue* CreateIntegerValue(MYSQL_BIND& bind) const
+    IValue* CreateIntegerValue(const MYSQL_BIND& bind) const
     {
       if (length_ != buffer_.size())
       {
@@ -114,10 +114,10 @@
     my_bool                 isError_;
     unsigned long           length_;
 
-
   public:
-    ResultField(const MYSQL_FIELD& field) :
-      mysqlType_(field.type)
+    explicit ResultField(const MYSQL_FIELD& field) :
+      mysqlType_(field.type),
+      length_(0)
     {
       // https://dev.mysql.com/doc/refman/8.0/en/c-api-data-structures.html
       // https://dev.mysql.com/doc/refman/8.0/en/mysql-stmt-fetch.html => size of "buffer_"
@@ -440,7 +440,6 @@
   IResult* MySQLStatement::Execute(ITransaction& transaction,
                                    const Dictionary& parameters)
   {
-    std::list<int>            intParameters;
     std::list<long long int>  int64Parameters;
 
     std::vector<MYSQL_BIND>  inputs(formatter_.GetParametersCount());
--- a/Framework/MySQL/MySQLStatement.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/MySQL/MySQLStatement.h	Wed Dec 16 15:05:19 2020 +0100
@@ -51,7 +51,7 @@
 
     virtual ~MySQLStatement();
 
-    virtual bool IsReadOnly() const
+    virtual bool IsReadOnly() const ORTHANC_OVERRIDE
     {
       return readOnly_;
     }
--- a/Framework/MySQL/MySQLTransaction.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/MySQL/MySQLTransaction.h	Wed Dec 16 15:05:19 2020 +0100
@@ -38,28 +38,28 @@
     bool            active_;
 
   public:
-    MySQLTransaction(MySQLDatabase& db);
+    explicit MySQLTransaction(MySQLDatabase& db);
 
     virtual ~MySQLTransaction();
 
-    virtual bool IsImplicit() const
+    virtual bool IsImplicit() const ORTHANC_OVERRIDE
     {
       return false;
     }
     
-    virtual bool IsReadOnly() const
+    virtual bool IsReadOnly() const ORTHANC_OVERRIDE
     {
       return readOnly_;
     }
 
-    virtual void Rollback();
+    virtual void Rollback() ORTHANC_OVERRIDE;
     
-    virtual void Commit();
+    virtual void Commit() ORTHANC_OVERRIDE;
 
     virtual IResult* Execute(IPrecompiledStatement& statement,
-                             const Dictionary& parameters);
+                             const Dictionary& parameters) ORTHANC_OVERRIDE;
 
     virtual void ExecuteWithoutResult(IPrecompiledStatement& transaction,
-                                      const Dictionary& parameters);
+                                      const Dictionary& parameters) ORTHANC_OVERRIDE;
   };
 }
--- a/Framework/Plugins/StorageBackend.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/Plugins/StorageBackend.h	Wed Dec 16 15:05:19 2020 +0100
@@ -38,7 +38,7 @@
                         const std::string& content);
 
   public:
-    StorageBackend(IDatabaseFactory* factory);
+    explicit StorageBackend(IDatabaseFactory* factory);
 
     virtual ~StorageBackend()
     {
--- a/Framework/PostgreSQL/PostgreSQLDatabase.cpp	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/PostgreSQL/PostgreSQLDatabase.cpp	Wed Dec 16 15:05:19 2020 +0100
@@ -249,7 +249,7 @@
       }
       
     public:
-      PostgreSQLImplicitTransaction(PostgreSQLDatabase&  db) :
+      explicit PostgreSQLImplicitTransaction(PostgreSQLDatabase&  db) :
         db_(db)
       {
       }
--- a/Framework/PostgreSQL/PostgreSQLDatabase.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/PostgreSQL/PostgreSQLDatabase.h	Wed Dec 16 15:05:19 2020 +0100
@@ -46,9 +46,9 @@
     bool RunAdvisoryLockStatement(const std::string& statement);
 
   public:
-    PostgreSQLDatabase(const PostgreSQLParameters& parameters) :
-    parameters_(parameters),
-    pg_(NULL)
+    explicit PostgreSQLDatabase(const PostgreSQLParameters& parameters) :
+      parameters_(parameters),
+      pg_(NULL)
     {
     }
 
@@ -68,14 +68,14 @@
 
     void ClearAll();   // Only for unit tests!
 
-    virtual Dialect GetDialect() const
+    virtual Dialect GetDialect() const ORTHANC_OVERRIDE
     {
       return Dialect_PostgreSQL;
     }
 
-    virtual IPrecompiledStatement* Compile(const Query& query);
+    virtual IPrecompiledStatement* Compile(const Query& query) ORTHANC_OVERRIDE;
 
-    virtual ITransaction* CreateTransaction(bool isImplicit);
+    virtual ITransaction* CreateTransaction(bool isImplicit) ORTHANC_OVERRIDE;
 
     class TransientAdvisoryLock
     {
--- a/Framework/PostgreSQL/PostgreSQLParameters.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/PostgreSQL/PostgreSQLParameters.h	Wed Dec 16 15:05:19 2020 +0100
@@ -48,7 +48,7 @@
   public:
     PostgreSQLParameters();
 
-    PostgreSQLParameters(const OrthancPlugins::OrthancConfiguration& configuration);
+    explicit PostgreSQLParameters(const OrthancPlugins::OrthancConfiguration& configuration);
 
     void SetConnectionUri(const std::string& uri);
 
--- a/Framework/PostgreSQL/PostgreSQLStatement.cpp	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/PostgreSQL/PostgreSQLStatement.cpp	Wed Dec 16 15:05:19 2020 +0100
@@ -476,7 +476,7 @@
     }
 
   public:
-    ResultWrapper(PostgreSQLStatement& statement) :
+    explicit ResultWrapper(PostgreSQLStatement& statement) :
       result_(new PostgreSQLResult(statement))
     {
       SetFieldsCount(result_->GetColumnsCount());
--- a/Framework/PostgreSQL/PostgreSQLStatement.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/PostgreSQL/PostgreSQLStatement.h	Wed Dec 16 15:05:19 2020 +0100
@@ -74,7 +74,7 @@
 
     ~PostgreSQLStatement();
     
-    virtual bool IsReadOnly() const
+    virtual bool IsReadOnly() const ORTHANC_OVERRIDE
     {
       return readOnly_;
     }
--- a/Framework/PostgreSQL/PostgreSQLTransaction.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/PostgreSQL/PostgreSQLTransaction.h	Wed Dec 16 15:05:19 2020 +0100
@@ -43,26 +43,26 @@
 
     ~PostgreSQLTransaction();
 
-    virtual bool IsImplicit() const
+    virtual bool IsImplicit() const ORTHANC_OVERRIDE
     {
       return false;
     }
     
-    virtual bool IsReadOnly() const 
+    virtual bool IsReadOnly() const  ORTHANC_OVERRIDE
     {
       return readOnly_;
     }
 
     void Begin();
 
-    virtual void Rollback();
+    virtual void Rollback() ORTHANC_OVERRIDE;
 
-    virtual void Commit();
+    virtual void Commit() ORTHANC_OVERRIDE;
 
     virtual IResult* Execute(IPrecompiledStatement& statement,
-                             const Dictionary& parameters);
+                             const Dictionary& parameters) ORTHANC_OVERRIDE;
 
     virtual void ExecuteWithoutResult(IPrecompiledStatement& statement,
-                                      const Dictionary& parameters);
+                                      const Dictionary& parameters) ORTHANC_OVERRIDE;
   };
 }
--- a/Framework/SQLite/SQLiteDatabase.cpp	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/SQLite/SQLiteDatabase.cpp	Wed Dec 16 15:05:19 2020 +0100
@@ -53,19 +53,19 @@
 
     protected:
       virtual IResult* ExecuteInternal(IPrecompiledStatement& statement,
-                                       const Dictionary& parameters)
+                                       const Dictionary& parameters) ORTHANC_OVERRIDE
       {
         return dynamic_cast<SQLiteStatement&>(statement).Execute(*this, parameters);
       }
 
       virtual void ExecuteWithoutResultInternal(IPrecompiledStatement& statement,
-                                                const Dictionary& parameters)
+                                                const Dictionary& parameters) ORTHANC_OVERRIDE
       {
         dynamic_cast<SQLiteStatement&>(statement).ExecuteWithoutResult(*this, parameters);
       }
       
     public:
-      SQLiteImplicitTransaction(SQLiteDatabase&  db) :
+      explicit SQLiteImplicitTransaction(SQLiteDatabase&  db) :
         db_(db)
       {
       }
--- a/Framework/SQLite/SQLiteDatabase.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/SQLite/SQLiteDatabase.h	Wed Dec 16 15:05:19 2020 +0100
@@ -64,13 +64,13 @@
       return connection_.GetLastInsertRowId();
     }
     
-    virtual Dialect GetDialect() const
+    virtual Dialect GetDialect() const ORTHANC_OVERRIDE
     {
       return Dialect_SQLite;
     }
 
-    virtual IPrecompiledStatement* Compile(const Query& query);
+    virtual IPrecompiledStatement* Compile(const Query& query) ORTHANC_OVERRIDE;
 
-    virtual ITransaction* CreateTransaction(bool isImplicit);
+    virtual ITransaction* CreateTransaction(bool isImplicit) ORTHANC_OVERRIDE;
   };
 }
--- a/Framework/SQLite/SQLiteResult.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/SQLite/SQLiteResult.h	Wed Dec 16 15:05:19 2020 +0100
@@ -39,16 +39,16 @@
     void StepInternal();
 
   protected:
-    virtual IValue* FetchField(size_t index);
+    virtual IValue* FetchField(size_t index) ORTHANC_OVERRIDE;
     
   public:
-    SQLiteResult(SQLiteStatement& statement);
+    explicit SQLiteResult(SQLiteStatement& statement);
     
-    virtual bool IsDone() const
+    virtual bool IsDone() const ORTHANC_OVERRIDE
     {
       return done_;
     }
 
-    virtual void Next();
+    virtual void Next() ORTHANC_OVERRIDE;
   };
 }
--- a/Framework/SQLite/SQLiteStatement.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/SQLite/SQLiteStatement.h	Wed Dec 16 15:05:19 2020 +0100
@@ -49,7 +49,7 @@
     SQLiteStatement(SQLiteDatabase& database,
                     const Query& query);
 
-    virtual bool IsReadOnly() const
+    virtual bool IsReadOnly() const ORTHANC_OVERRIDE
     {
       return readOnly_;
     }
--- a/Framework/SQLite/SQLiteTransaction.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/Framework/SQLite/SQLiteTransaction.h	Wed Dec 16 15:05:19 2020 +0100
@@ -39,32 +39,32 @@
     bool                          readOnly_;
     
   public:
-    SQLiteTransaction(SQLiteDatabase& database);
+    explicit SQLiteTransaction(SQLiteDatabase& database);
 
-    virtual bool IsImplicit() const
+    virtual bool IsImplicit() const ORTHANC_OVERRIDE
     {
       return false;
     }
     
-    virtual bool IsReadOnly() const
+    virtual bool IsReadOnly() const ORTHANC_OVERRIDE
     {
       return readOnly_;
     }
 
-    virtual void Rollback()
+    virtual void Rollback() ORTHANC_OVERRIDE
     {
       transaction_.Rollback();
     }      
     
-    virtual void Commit()
+    virtual void Commit() ORTHANC_OVERRIDE
     {
       transaction_.Commit();
     }
 
     virtual IResult* Execute(IPrecompiledStatement& statement,
-                             const Dictionary& parameters);
+                             const Dictionary& parameters) ORTHANC_OVERRIDE;
 
     virtual void ExecuteWithoutResult(IPrecompiledStatement& statement,
-                                      const Dictionary& parameters);
+                                      const Dictionary& parameters) ORTHANC_OVERRIDE;
   };
 }
--- a/MySQL/Plugins/MySQLStorageArea.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/MySQL/Plugins/MySQLStorageArea.h	Wed Dec 16 15:05:19 2020 +0100
@@ -36,36 +36,36 @@
       MySQLStorageArea&  that_;
 
     public:
-      Factory(MySQLStorageArea& that) :
+      explicit Factory(MySQLStorageArea& that) :
         that_(that)
       {
       }
 
-      virtual Dialect GetDialect() const
+      virtual Dialect GetDialect() const ORTHANC_OVERRIDE
       {
         return Dialect_MySQL;
       }
 
-      virtual IDatabase* Open()
+      virtual IDatabase* Open() ORTHANC_OVERRIDE
       {
         return that_.OpenInternal();
       }
 
-      virtual void GetConnectionRetriesParameters(unsigned int& maxConnectionRetries, unsigned int& connectionRetryInterval)
+      virtual void GetConnectionRetriesParameters(unsigned int& maxConnectionRetries,
+                                                  unsigned int& connectionRetryInterval) ORTHANC_OVERRIDE
       {
         maxConnectionRetries = that_.parameters_.GetMaxConnectionRetries();
         connectionRetryInterval = that_.parameters_.GetConnectionRetryInterval();
       }
     };
 
-    OrthancPluginContext*  context_;
     MySQLParameters        parameters_;
     bool                   clearAll_;
 
     IDatabase* OpenInternal();
 
   public:
-    MySQLStorageArea(const MySQLParameters& parameters);
+    explicit MySQLStorageArea(const MySQLParameters& parameters);
 
     void SetClearAll(bool clear)
     {
--- a/PostgreSQL/Plugins/PostgreSQLStorageArea.h	Wed Dec 16 13:59:17 2020 +0100
+++ b/PostgreSQL/Plugins/PostgreSQLStorageArea.h	Wed Dec 16 15:05:19 2020 +0100
@@ -35,8 +35,8 @@
       PostgreSQLStorageArea&  that_;
 
     public:
-      Factory(PostgreSQLStorageArea& that) :
-      that_(that)
+      explicit Factory(PostgreSQLStorageArea& that) :
+        that_(that)
       {
       }
 
@@ -57,14 +57,13 @@
       }
     };
 
-    OrthancPluginContext*  context_;
     PostgreSQLParameters   parameters_;
     bool                   clearAll_;
 
     IDatabase* OpenInternal();
 
   public:
-    PostgreSQLStorageArea(const PostgreSQLParameters& parameters);
+    explicit PostgreSQLStorageArea(const PostgreSQLParameters& parameters);
 
     void SetClearAll(bool clear)
     {