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