Mercurial > hg > orthanc-databases
comparison Framework/MySQL/MySQLDatabase.h @ 137:52b3859ee0b7
MySQL: acquiring named locks instead of numbers
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 09 May 2019 11:29:17 +0200 |
parents | e26690365c25 |
children | 4cd7e45b671e |
comparison
equal
deleted
inserted
replaced
136:3266785d5627 | 137:52b3859ee0b7 |
---|---|
42 | 42 |
43 void OpenInternal(const char* database); | 43 void OpenInternal(const char* database); |
44 | 44 |
45 void Close(); | 45 void Close(); |
46 | 46 |
47 bool RunAdvisoryLockStatement(const std::string& statement); | 47 bool RunAdvisoryLockStatement(Query& query, |
48 const std::string& lock); | |
48 | 49 |
49 public: | 50 public: |
50 MySQLDatabase(const MySQLParameters& parameters); | 51 MySQLDatabase(const MySQLParameters& parameters); |
51 | 52 |
52 virtual ~MySQLDatabase(); | 53 virtual ~MySQLDatabase(); |
70 const std::string& variable); | 71 const std::string& variable); |
71 | 72 |
72 bool LookupGlobalIntegerVariable(int64_t& value, | 73 bool LookupGlobalIntegerVariable(int64_t& value, |
73 const std::string& variable); | 74 const std::string& variable); |
74 | 75 |
75 bool AcquireAdvisoryLock(int32_t lock); | 76 bool AcquireAdvisoryLock(const std::string& lock); |
76 | 77 |
77 bool ReleaseAdvisoryLock(int32_t lock); | 78 bool ReleaseAdvisoryLock(const std::string& lock); |
78 | 79 |
79 void AdvisoryLock(int32_t lock); | 80 void AdvisoryLock(const std::string& lock); |
80 | 81 |
81 void Execute(const std::string& sql, | 82 void Execute(const std::string& sql, |
82 bool arobaseSeparator); | 83 bool arobaseSeparator); |
83 | 84 |
84 bool DoesTableExist(MySQLTransaction& transaction, | 85 bool DoesTableExist(MySQLTransaction& transaction, |
102 | 103 |
103 class TransientAdvisoryLock | 104 class TransientAdvisoryLock |
104 { | 105 { |
105 private: | 106 private: |
106 MySQLDatabase& database_; | 107 MySQLDatabase& database_; |
107 int32_t lock_; | 108 std::string lock_; |
108 | 109 |
109 public: | 110 public: |
110 TransientAdvisoryLock(MySQLDatabase& database, | 111 TransientAdvisoryLock(MySQLDatabase& database, |
111 int32_t lock); | 112 const std::string& lock); |
112 | 113 |
113 ~TransientAdvisoryLock(); | 114 ~TransientAdvisoryLock(); |
114 }; | 115 }; |
115 }; | 116 }; |
116 } | 117 } |