sticker/Database: add method Reopen()
This commit is contained in:
parent
dc31aa6a61
commit
fbdd2324a5
@ -67,11 +67,10 @@ static constexpr const char sticker_sql_create[] =
|
|||||||
" sticker_value ON sticker(type, uri, name);"
|
" sticker_value ON sticker(type, uri, name);"
|
||||||
"";
|
"";
|
||||||
|
|
||||||
StickerDatabase::StickerDatabase(Path path)
|
StickerDatabase::StickerDatabase(const char *_path)
|
||||||
:db(NarrowPath(path))
|
:path(_path),
|
||||||
|
db(path.c_str())
|
||||||
{
|
{
|
||||||
assert(!path.IsNull());
|
|
||||||
|
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* create the table and index */
|
/* create the table and index */
|
||||||
@ -91,6 +90,9 @@ StickerDatabase::StickerDatabase(Path path)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
StickerDatabase::StickerDatabase(Path _path)
|
||||||
|
:StickerDatabase(NarrowPath{_path}) {}
|
||||||
|
|
||||||
StickerDatabase::~StickerDatabase() noexcept
|
StickerDatabase::~StickerDatabase() noexcept
|
||||||
{
|
{
|
||||||
if (db == nullptr)
|
if (db == nullptr)
|
||||||
|
@ -53,9 +53,13 @@ class StickerDatabase {
|
|||||||
SQL_COUNT
|
SQL_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::string path;
|
||||||
|
|
||||||
Sqlite::Database db;
|
Sqlite::Database db;
|
||||||
sqlite3_stmt *stmt[SQL_COUNT];
|
sqlite3_stmt *stmt[SQL_COUNT];
|
||||||
|
|
||||||
|
explicit StickerDatabase(const char *_path);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* Opens the sticker database.
|
* Opens the sticker database.
|
||||||
@ -68,6 +72,14 @@ public:
|
|||||||
StickerDatabase(StickerDatabase &&) noexcept = default;
|
StickerDatabase(StickerDatabase &&) noexcept = default;
|
||||||
StickerDatabase &operator=(StickerDatabase &&) noexcept = default;
|
StickerDatabase &operator=(StickerDatabase &&) noexcept = default;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open another connection to the same database file.
|
||||||
|
*/
|
||||||
|
[[nodiscard]]
|
||||||
|
StickerDatabase Reopen() const {
|
||||||
|
return StickerDatabase{path.c_str()};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns one value from an object's sticker record. Returns an
|
* Returns one value from an object's sticker record. Returns an
|
||||||
* empty string if the value doesn't exist.
|
* empty string if the value doesn't exist.
|
||||||
|
Loading…
Reference in New Issue
Block a user