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 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 &lt;https://www.gnu.org/licenses/&gt;.
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 &amp;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 &lt;https://www.gnu.org/licenses/&gt;.
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);
... ...