Commit 2677a728bc3a973df7bd36b043d3d5078a142f33

Authored by Wiebe Cazemier
1 parent cd447414

Bump persistence files to version 3

They now contain sender info of publishes.
retainedmessagesdb.cpp
@@ -37,7 +37,7 @@ RetainedMessagesDB::RetainedMessagesDB(const std::string &filePath) : Persistenc @@ -37,7 +37,7 @@ RetainedMessagesDB::RetainedMessagesDB(const std::string &filePath) : Persistenc
37 37
38 void RetainedMessagesDB::openWrite() 38 void RetainedMessagesDB::openWrite()
39 { 39 {
40 - PersistenceFile::openWrite(MAGIC_STRING_V2); 40 + PersistenceFile::openWrite(MAGIC_STRING_V3);
41 } 41 }
42 42
43 void RetainedMessagesDB::openRead() 43 void RetainedMessagesDB::openRead()
@@ -48,6 +48,8 @@ void RetainedMessagesDB::openRead() @@ -48,6 +48,8 @@ void RetainedMessagesDB::openRead()
48 readVersion = ReadVersion::v1; 48 readVersion = ReadVersion::v1;
49 else if (detectedVersionString == MAGIC_STRING_V2) 49 else if (detectedVersionString == MAGIC_STRING_V2)
50 readVersion = ReadVersion::v2; 50 readVersion = ReadVersion::v2;
  51 + else if (detectedVersionString == MAGIC_STRING_V3)
  52 + readVersion = ReadVersion::v3;
51 else 53 else
52 throw std::runtime_error("Unknown file version."); 54 throw std::runtime_error("Unknown file version.");
53 } 55 }
@@ -106,12 +108,14 @@ std::list<RetainedMessage> RetainedMessagesDB::readData() @@ -106,12 +108,14 @@ std::list<RetainedMessage> RetainedMessagesDB::readData()
106 if (readVersion == ReadVersion::v1) 108 if (readVersion == ReadVersion::v1)
107 logger->logf(LOG_WARNING, "File '%s' is version 1, an internal development version that was never finalized. Not reading.", getFilePath().c_str()); 109 logger->logf(LOG_WARNING, "File '%s' is version 1, an internal development version that was never finalized. Not reading.", getFilePath().c_str());
108 if (readVersion == ReadVersion::v2) 110 if (readVersion == ReadVersion::v2)
109 - return readDataV2(); 111 + logger->logf(LOG_WARNING, "File '%s' is version 2, an internal development version that was never finalized. Not reading.", getFilePath().c_str());
  112 + if (readVersion == ReadVersion::v3)
  113 + return readDataV3();
110 114
111 return defaultResult; 115 return defaultResult;
112 } 116 }
113 117
114 -std::list<RetainedMessage> RetainedMessagesDB::readDataV2() 118 +std::list<RetainedMessage> RetainedMessagesDB::readDataV3()
115 { 119 {
116 std::list<RetainedMessage> messages; 120 std::list<RetainedMessage> messages;
117 121
retainedmessagesdb.h
@@ -25,6 +25,7 @@ License along with FlashMQ. If not, see &lt;https://www.gnu.org/licenses/&gt;. @@ -25,6 +25,7 @@ License along with FlashMQ. If not, see &lt;https://www.gnu.org/licenses/&gt;.
25 25
26 #define MAGIC_STRING_V1 "FlashMQRetainedDBv1" 26 #define MAGIC_STRING_V1 "FlashMQRetainedDBv1"
27 #define MAGIC_STRING_V2 "FlashMQRetainedDBv2" 27 #define MAGIC_STRING_V2 "FlashMQRetainedDBv2"
  28 +#define MAGIC_STRING_V3 "FlashMQRetainedDBv3"
28 #define RESERVED_SPACE_RETAINED_DB_V2 64 29 #define RESERVED_SPACE_RETAINED_DB_V2 64
29 30
30 /** 31 /**
@@ -45,7 +46,8 @@ class RetainedMessagesDB : public PersistenceFile @@ -45,7 +46,8 @@ class RetainedMessagesDB : public PersistenceFile
45 { 46 {
46 unknown, 47 unknown,
47 v1, 48 v1,
48 - v2 49 + v2,
  50 + v3
49 }; 51 };
50 52
51 struct RowHeader 53 struct RowHeader
@@ -56,7 +58,7 @@ class RetainedMessagesDB : public PersistenceFile @@ -56,7 +58,7 @@ class RetainedMessagesDB : public PersistenceFile
56 58
57 ReadVersion readVersion = ReadVersion::unknown; 59 ReadVersion readVersion = ReadVersion::unknown;
58 60
59 - std::list<RetainedMessage> readDataV2(); 61 + std::list<RetainedMessage> readDataV3();
60 public: 62 public:
61 RetainedMessagesDB(const std::string &filePath); 63 RetainedMessagesDB(const std::string &filePath);
62 64
sessionsandsubscriptionsdb.cpp
@@ -43,7 +43,7 @@ SessionsAndSubscriptionsDB::SessionsAndSubscriptionsDB(const std::string &amp;filePa @@ -43,7 +43,7 @@ SessionsAndSubscriptionsDB::SessionsAndSubscriptionsDB(const std::string &amp;filePa
43 43
44 void SessionsAndSubscriptionsDB::openWrite() 44 void SessionsAndSubscriptionsDB::openWrite()
45 { 45 {
46 - PersistenceFile::openWrite(MAGIC_STRING_SESSION_FILE_V2); 46 + PersistenceFile::openWrite(MAGIC_STRING_SESSION_FILE_V3);
47 } 47 }
48 48
49 void SessionsAndSubscriptionsDB::openRead() 49 void SessionsAndSubscriptionsDB::openRead()
@@ -54,11 +54,13 @@ void SessionsAndSubscriptionsDB::openRead() @@ -54,11 +54,13 @@ void SessionsAndSubscriptionsDB::openRead()
54 readVersion = ReadVersion::v1; 54 readVersion = ReadVersion::v1;
55 else if (detectedVersionString == MAGIC_STRING_SESSION_FILE_V2) 55 else if (detectedVersionString == MAGIC_STRING_SESSION_FILE_V2)
56 readVersion = ReadVersion::v2; 56 readVersion = ReadVersion::v2;
  57 + else if (detectedVersionString == MAGIC_STRING_SESSION_FILE_V3)
  58 + readVersion = ReadVersion::v3;
57 else 59 else
58 throw std::runtime_error("Unknown file version."); 60 throw std::runtime_error("Unknown file version.");
59 } 61 }
60 62
61 -SessionsAndSubscriptionsResult SessionsAndSubscriptionsDB::readDataV2() 63 +SessionsAndSubscriptionsResult SessionsAndSubscriptionsDB::readDataV3()
62 { 64 {
63 const Settings *settings = ThreadGlobals::getSettings(); 65 const Settings *settings = ThreadGlobals::getSettings();
64 66
@@ -388,7 +390,9 @@ SessionsAndSubscriptionsResult SessionsAndSubscriptionsDB::readData() @@ -388,7 +390,9 @@ SessionsAndSubscriptionsResult SessionsAndSubscriptionsDB::readData()
388 if (readVersion == ReadVersion::v1) 390 if (readVersion == ReadVersion::v1)
389 logger->logf(LOG_WARNING, "File '%s' is version 1, an internal development version that was never finalized. Not reading.", getFilePath().c_str()); 391 logger->logf(LOG_WARNING, "File '%s' is version 1, an internal development version that was never finalized. Not reading.", getFilePath().c_str());
390 if (readVersion == ReadVersion::v2) 392 if (readVersion == ReadVersion::v2)
391 - return readDataV2(); 393 + logger->logf(LOG_WARNING, "File '%s' is version 2, an internal development version that was never finalized. Not reading.", getFilePath().c_str());
  394 + if (readVersion == ReadVersion::v3)
  395 + return readDataV3();
392 396
393 return defaultResult; 397 return defaultResult;
394 } 398 }
sessionsandsubscriptionsdb.h
@@ -26,6 +26,7 @@ License along with FlashMQ. If not, see &lt;https://www.gnu.org/licenses/&gt;. @@ -26,6 +26,7 @@ License along with FlashMQ. If not, see &lt;https://www.gnu.org/licenses/&gt;.
26 26
27 #define MAGIC_STRING_SESSION_FILE_V1 "FlashMQRetainedDBv1" // That this is called 'retained' was a bug... 27 #define MAGIC_STRING_SESSION_FILE_V1 "FlashMQRetainedDBv1" // That this is called 'retained' was a bug...
28 #define MAGIC_STRING_SESSION_FILE_V2 "FlashMQSessionDBv2" 28 #define MAGIC_STRING_SESSION_FILE_V2 "FlashMQSessionDBv2"
  29 +#define MAGIC_STRING_SESSION_FILE_V3 "FlashMQSessionDBv3"
29 #define RESERVED_SPACE_SESSIONS_DB_V2 32 30 #define RESERVED_SPACE_SESSIONS_DB_V2 32
30 31
31 /** 32 /**
@@ -53,12 +54,13 @@ class SessionsAndSubscriptionsDB : public PersistenceFile @@ -53,12 +54,13 @@ class SessionsAndSubscriptionsDB : public PersistenceFile
53 { 54 {
54 unknown, 55 unknown,
55 v1, 56 v1,
56 - v2 57 + v2,
  58 + v3
57 }; 59 };
58 60
59 ReadVersion readVersion = ReadVersion::unknown; 61 ReadVersion readVersion = ReadVersion::unknown;
60 62
61 - SessionsAndSubscriptionsResult readDataV2(); 63 + SessionsAndSubscriptionsResult readDataV3();
62 void writeRowHeader(); 64 void writeRowHeader();
63 public: 65 public:
64 SessionsAndSubscriptionsDB(const std::string &filePath); 66 SessionsAndSubscriptionsDB(const std::string &filePath);