summaryrefslogtreecommitdiff
path: root/src/database
diff options
context:
space:
mode:
authorlouiz’ <louiz@louiz.org>2017-09-09 17:09:17 +0200
committerlouiz’ <louiz@louiz.org>2017-09-09 17:09:17 +0200
commitbfcf29451787d10c747ad79cb3fd177ac86e9cf1 (patch)
tree20e34434b136300cdfb3f99f07c76e6b7b9c726c /src/database
parent8d99374f1f02a4d229b49f6697247eb1e1f4f940 (diff)
downloadbiboumi-bfcf29451787d10c747ad79cb3fd177ac86e9cf1.tar.gz
biboumi-bfcf29451787d10c747ad79cb3fd177ac86e9cf1.tar.bz2
biboumi-bfcf29451787d10c747ad79cb3fd177ac86e9cf1.tar.xz
biboumi-bfcf29451787d10c747ad79cb3fd177ac86e9cf1.zip
Add the persistent_by_default configuration option
fix #3293
Diffstat (limited to 'src/database')
-rw-r--r--src/database/database.cpp5
-rw-r--r--src/database/database.hpp5
2 files changed, 9 insertions, 1 deletions
diff --git a/src/database/database.cpp b/src/database/database.cpp
index f706528..a2b88e2 100644
--- a/src/database/database.cpp
+++ b/src/database/database.cpp
@@ -6,6 +6,8 @@
#include <utils/get_first_non_empty.hpp>
#include <utils/time.hpp>
+#include <config/config.hpp>
+
#include <database/index.hpp>
#include <sqlite3.h>
@@ -18,6 +20,9 @@ Database::IrcChannelOptionsTable Database::irc_channel_options("IrcChannelOption
Database::RosterTable Database::roster("roster");
std::map<Database::CacheKey, Database::EncodingIn::real_type> Database::encoding_in_cache{};
+Database::GlobalPersistent::GlobalPersistent():
+ Column<bool>{Config::get_bool("persistent_by_default", false)}
+{}
void Database::open(const std::string& filename)
{
diff --git a/src/database/database.hpp b/src/database/database.hpp
index f4b2ecd..f9695d3 100644
--- a/src/database/database.hpp
+++ b/src/database/database.hpp
@@ -73,6 +73,9 @@ class Database
struct Persistent: Column<bool> { static constexpr auto name = "persistent_";
Persistent(): Column<bool>(false) {} };
+ struct GlobalPersistent: Column<bool> { static constexpr auto name = "persistent_";
+ GlobalPersistent(); };
+
struct LocalJid: Column<std::string> { static constexpr auto name = "local"; };
struct RemoteJid: Column<std::string> { static constexpr auto name = "remote"; };
@@ -81,7 +84,7 @@ class Database
using MucLogLineTable = Table<Id, Uuid, Owner, IrcChanName, IrcServerName, Date, Body, Nick>;
using MucLogLine = MucLogLineTable::RowType;
- using GlobalOptionsTable = Table<Id, Owner, MaxHistoryLength, RecordHistory, Persistent>;
+ using GlobalOptionsTable = Table<Id, Owner, MaxHistoryLength, RecordHistory, GlobalPersistent>;
using GlobalOptions = GlobalOptionsTable::RowType;
using IrcServerOptionsTable = Table<Id, Owner, Server, Pass, AfterConnectionCommand, TlsPorts, Ports, Username, Realname, VerifyCert, TrustedFingerprint, EncodingOut, EncodingIn, MaxHistoryLength>;