Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F13711340
D8633.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Subscribers
None
D8633.diff
View Options
diff --git a/src/serialize.h b/src/serialize.h
--- a/src/serialize.h
+++ b/src/serialize.h
@@ -709,6 +709,14 @@
template <typename Stream, typename C>
void Unserialize(Stream &is, std::basic_string<C> &str);
+/**
+ * string_view
+ */
+template <typename Stream, typename C>
+void Serialize(Stream &os, const std::basic_string_view<C> &str);
+template <typename Stream, typename C>
+void Unserialize(Stream &is, std::basic_string_view<C> &str);
+
/**
* prevector
* prevectors of uint8_t are a special case and are intended to be serialized as
@@ -821,6 +829,26 @@
}
}
+/**
+ * string_view
+ */
+template <typename Stream, typename C>
+void Serialize(Stream &os, const std::basic_string_view<C> &str) {
+ WriteCompactSize(os, str.size());
+ if (!str.empty()) {
+ os.write((char *)str.data(), str.size() * sizeof(C));
+ }
+}
+
+template <typename Stream, typename C>
+void Unserialize(Stream &is, std::basic_string_view<C> &str) {
+ size_t nSize = ReadCompactSize(is);
+ str.resize(nSize);
+ if (nSize != 0) {
+ is.read((char *)str.data(), nSize * sizeof(C));
+ }
+}
+
/**
* prevector
*/
diff --git a/src/wallet/walletdb.h b/src/wallet/walletdb.h
--- a/src/wallet/walletdb.h
+++ b/src/wallet/walletdb.h
@@ -56,35 +56,35 @@
};
namespace DBKeys {
-extern const std::string ACENTRY;
-extern const std::string ACTIVEEXTERNALSPK;
-extern const std::string ACTIVEINTERNALSPK;
-extern const std::string BESTBLOCK;
-extern const std::string BESTBLOCK_NOMERKLE;
-extern const std::string CRYPTED_KEY;
-extern const std::string CSCRIPT;
-extern const std::string DEFAULTKEY;
-extern const std::string DESTDATA;
-extern const std::string FLAGS;
-extern const std::string HDCHAIN;
-extern const std::string KEY;
-extern const std::string KEYMETA;
-extern const std::string MASTER_KEY;
-extern const std::string MINVERSION;
-extern const std::string NAME;
-extern const std::string OLD_KEY;
-extern const std::string ORDERPOSNEXT;
-extern const std::string POOL;
-extern const std::string PURPOSE;
-extern const std::string SETTINGS;
-extern const std::string TX;
-extern const std::string VERSION;
-extern const std::string WALLETDESCRIPTOR;
-extern const std::string WALLETDESCRIPTORCACHE;
-extern const std::string WALLETDESCRIPTORCKEY;
-extern const std::string WALLETDESCRIPTORKEY;
-extern const std::string WATCHMETA;
-extern const std::string WATCHS;
+constexpr std::string_view ACENTRY = "acentry";
+constexpr std::string_view ACTIVEEXTERNALSPK = "activeexternalspk";
+constexpr std::string_view ACTIVEINTERNALSPK = "activeinternalspk";
+constexpr std::string_view BESTBLOCK_NOMERKLE = "bestblock_nomerkle";
+constexpr std::string_view BESTBLOCK = "bestblock";
+constexpr std::string_view CRYPTED_KEY = "ckey";
+constexpr std::string_view CSCRIPT = "cscript";
+constexpr std::string_view DEFAULTKEY = "defaultkey";
+constexpr std::string_view DESTDATA = "destdata";
+constexpr std::string_view FLAGS = "flags";
+constexpr std::string_view HDCHAIN = "hdchain";
+constexpr std::string_view KEYMETA = "keymeta";
+constexpr std::string_view KEY = "key";
+constexpr std::string_view MASTER_KEY = "mkey";
+constexpr std::string_view MINVERSION = "minversion";
+constexpr std::string_view NAME = "name";
+constexpr std::string_view OLD_KEY = "wkey";
+constexpr std::string_view ORDERPOSNEXT = "orderposnext";
+constexpr std::string_view POOL = "pool";
+constexpr std::string_view PURPOSE = "purpose";
+constexpr std::string_view SETTINGS = "settings";
+constexpr std::string_view TX = "tx";
+constexpr std::string_view VERSION = "version";
+constexpr std::string_view WALLETDESCRIPTOR = "walletdescriptor";
+constexpr std::string_view WALLETDESCRIPTORCACHE = "walletdescriptorcache";
+constexpr std::string_view WALLETDESCRIPTORCKEY = "walletdescriptorckey";
+constexpr std::string_view WALLETDESCRIPTORKEY = "walletdescriptorkey";
+constexpr std::string_view WATCHMETA = "watchmeta";
+constexpr std::string_view WATCHS = "watchs";
} // namespace DBKeys
/* simple HD chain data model */
diff --git a/src/wallet/walletdb.cpp b/src/wallet/walletdb.cpp
--- a/src/wallet/walletdb.cpp
+++ b/src/wallet/walletdb.cpp
@@ -18,38 +18,6 @@
#include <atomic>
-namespace DBKeys {
-const std::string ACENTRY{"acentry"};
-const std::string ACTIVEEXTERNALSPK{"activeexternalspk"};
-const std::string ACTIVEINTERNALSPK{"activeinternalspk"};
-const std::string BESTBLOCK_NOMERKLE{"bestblock_nomerkle"};
-const std::string BESTBLOCK{"bestblock"};
-const std::string CRYPTED_KEY{"ckey"};
-const std::string CSCRIPT{"cscript"};
-const std::string DEFAULTKEY{"defaultkey"};
-const std::string DESTDATA{"destdata"};
-const std::string FLAGS{"flags"};
-const std::string HDCHAIN{"hdchain"};
-const std::string KEYMETA{"keymeta"};
-const std::string KEY{"key"};
-const std::string MASTER_KEY{"mkey"};
-const std::string MINVERSION{"minversion"};
-const std::string NAME{"name"};
-const std::string OLD_KEY{"wkey"};
-const std::string ORDERPOSNEXT{"orderposnext"};
-const std::string POOL{"pool"};
-const std::string PURPOSE{"purpose"};
-const std::string SETTINGS{"settings"};
-const std::string TX{"tx"};
-const std::string VERSION{"version"};
-const std::string WALLETDESCRIPTOR{"walletdescriptor"};
-const std::string WALLETDESCRIPTORCACHE{"walletdescriptorcache"};
-const std::string WALLETDESCRIPTORCKEY{"walletdescriptorckey"};
-const std::string WALLETDESCRIPTORKEY{"walletdescriptorkey"};
-const std::string WATCHMETA{"watchmeta"};
-const std::string WATCHS{"watchs"};
-} // namespace DBKeys
-
//
// WalletBatch
//
@@ -200,7 +168,7 @@
bool WalletBatch::WriteActiveScriptPubKeyMan(uint8_t type, const uint256 &id,
bool internal) {
- std::string key =
+ const auto key =
internal ? DBKeys::ACTIVEINTERNALSPK : DBKeys::ACTIVEEXTERNALSPK;
return WriteIC(make_pair(key, type), id);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 26, 11:42 (16 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5573431
Default Alt Text
D8633.diff (5 KB)
Attached To
D8633: [refactor] use compile time string_view for DBKeys
Event Timeline
Log In to Comment