Mercurial > hg > orthanc-databases
comparison Framework/MySQL/MySQLDatabase.cpp @ 226:a4918d57435c
DatabaseManager doesn't IDatabaseFactory anymore
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 02 Apr 2021 19:23:36 +0200 |
parents | ee5858d438dc |
children | d1b124d116c1 |
comparison
equal
deleted
inserted
replaced
225:94c9908e6aca | 226:a4918d57435c |
---|---|
19 **/ | 19 **/ |
20 | 20 |
21 | 21 |
22 #include "MySQLDatabase.h" | 22 #include "MySQLDatabase.h" |
23 | 23 |
24 #include "../Common/ImplicitTransaction.h" | |
25 #include "../Common/Integer64Value.h" | |
26 #include "../Common/RetryDatabaseFactory.h" | |
24 #include "MySQLResult.h" | 27 #include "MySQLResult.h" |
25 #include "MySQLStatement.h" | 28 #include "MySQLStatement.h" |
26 #include "MySQLTransaction.h" | 29 #include "MySQLTransaction.h" |
27 #include "../Common/ImplicitTransaction.h" | |
28 #include "../Common/Integer64Value.h" | |
29 | 30 |
30 #include <Compatibility.h> // For std::unique_ptr<> | 31 #include <Compatibility.h> // For std::unique_ptr<> |
31 #include <Logging.h> | 32 #include <Logging.h> |
32 #include <OrthancException.h> | 33 #include <OrthancException.h> |
33 #include <Toolbox.h> | 34 #include <Toolbox.h> |
610 | 611 |
611 MySQLDatabase::TransientAdvisoryLock::~TransientAdvisoryLock() | 612 MySQLDatabase::TransientAdvisoryLock::~TransientAdvisoryLock() |
612 { | 613 { |
613 database_.ReleaseAdvisoryLock(lock_); | 614 database_.ReleaseAdvisoryLock(lock_); |
614 } | 615 } |
616 | |
617 | |
618 MySQLDatabase* MySQLDatabase::OpenDatabaseConnection(const MySQLParameters& parameters) | |
619 { | |
620 class Factory : public RetryDatabaseFactory | |
621 { | |
622 private: | |
623 const MySQLParameters& parameters_; | |
624 | |
625 protected: | |
626 virtual IDatabase* TryOpen() | |
627 { | |
628 std::unique_ptr<MySQLDatabase> db(new MySQLDatabase(parameters_)); | |
629 db->Open(); | |
630 return db.release(); | |
631 } | |
632 | |
633 public: | |
634 Factory(const MySQLParameters& parameters) : | |
635 RetryDatabaseFactory(parameters.GetMaxConnectionRetries(), | |
636 parameters.GetConnectionRetryInterval()), | |
637 parameters_(parameters) | |
638 { | |
639 } | |
640 }; | |
641 | |
642 Factory factory(parameters); | |
643 return dynamic_cast<MySQLDatabase*>(factory.Open()); | |
644 } | |
615 } | 645 } |