comparison SQLite/Plugins/SQLiteIndex.h @ 226:a4918d57435c

DatabaseManager doesn't IDatabaseFactory anymore
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 02 Apr 2021 19:23:36 +0200
parents 94c9908e6aca
children 1ad9118b0717
comparison
equal deleted inserted replaced
225:94c9908e6aca 226:a4918d57435c
19 **/ 19 **/
20 20
21 21
22 #pragma once 22 #pragma once
23 23
24 #include "../../Framework/Common/IDatabaseFactory.h"
24 #include "../../Framework/Plugins/IndexBackend.h" 25 #include "../../Framework/Plugins/IndexBackend.h"
25 26
26 namespace OrthancDatabases 27 namespace OrthancDatabases
27 { 28 {
28 class SQLiteIndex : public IndexBackend 29 class SQLiteIndex : public IndexBackend
29 { 30 {
30 private: 31 private:
31 class Factory : public IDatabaseFactory
32 {
33 private:
34 SQLiteIndex& that_;
35
36 public:
37 Factory(SQLiteIndex& that) :
38 that_(that)
39 {
40 }
41
42 virtual Dialect GetDialect() const
43 {
44 return Dialect_SQLite;
45 }
46
47 virtual IDatabase* Open()
48 {
49 return that_.OpenInternal();
50 }
51
52 virtual void GetConnectionRetriesParameters(unsigned int& maxConnectionRetries,
53 unsigned int& connectionRetryInterval)
54 {
55 // Dummy parameters
56 maxConnectionRetries = 0;
57 connectionRetryInterval = 1;
58 }
59 };
60
61 std::string path_; 32 std::string path_;
62 bool fast_; 33 bool fast_;
63
64 IDatabase* OpenInternal();
65 34
66 public: 35 public:
67 SQLiteIndex(OrthancPluginContext* context); // Opens in memory 36 SQLiteIndex(OrthancPluginContext* context); // Opens in memory
68 37
69 SQLiteIndex(OrthancPluginContext* context, 38 SQLiteIndex(OrthancPluginContext* context,
72 void SetFast(bool fast) 41 void SetFast(bool fast)
73 { 42 {
74 fast_ = fast; 43 fast_ = fast;
75 } 44 }
76 45
77 virtual IDatabaseFactory* CreateDatabaseFactory() ORTHANC_OVERRIDE 46 virtual IDatabase* OpenDatabaseConnection() ORTHANC_OVERRIDE;
78 { 47
79 return new Factory(*this); 48 virtual void ConfigureDatabase(IDatabase& database) ORTHANC_OVERRIDE;
80 }
81 49
82 virtual int64_t CreateResource(DatabaseManager& manager, 50 virtual int64_t CreateResource(DatabaseManager& manager,
83 const char* publicId, 51 const char* publicId,
84 OrthancPluginResourceType type); 52 OrthancPluginResourceType type);
85 53