aboutsummaryrefslogtreecommitdiff
path: root/contrib/epee/include/serialization
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2017-07-24 20:59:01 +0100
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2017-07-24 21:02:30 +0100
commit5eb79983bef49fca2d09a587e5199855459605f5 (patch)
tree569786bf66a72c51377d041dab5e8b54640191b0 /contrib/epee/include/serialization
parentMerge pull request #2159 (diff)
downloadmonero-5eb79983bef49fca2d09a587e5199855459605f5.tar.xz
epee: add a KV_SERIALIZE variant for optional parameters
Diffstat (limited to 'contrib/epee/include/serialization')
-rw-r--r--contrib/epee/include/serialization/keyvalue_serialization.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/contrib/epee/include/serialization/keyvalue_serialization.h b/contrib/epee/include/serialization/keyvalue_serialization.h
index bf2c8dacd..f4442e46c 100644
--- a/contrib/epee/include/serialization/keyvalue_serialization.h
+++ b/contrib/epee/include/serialization/keyvalue_serialization.h
@@ -70,6 +70,12 @@ public: \
#define KV_SERIALIZE_N(varialble, val_name) \
epee::serialization::selector<is_store>::serialize(this_ref.varialble, stg, hparent_section, val_name);
+#define KV_SERIALIZE_OPT_N(variable, val_name, default_value) \
+ do { \
+ if (!epee::serialization::selector<is_store>::serialize(this_ref.variable, stg, hparent_section, val_name)) \
+ this_ref.variable = default_value; \
+ } while (0);
+
#define KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE_N(varialble, val_name) \
epee::serialization::selector<is_store>::serialize_t_val_as_blob(this_ref.varialble, stg, hparent_section, val_name);
@@ -86,6 +92,7 @@ public: \
#define KV_SERIALIZE_VAL_POD_AS_BLOB(varialble) KV_SERIALIZE_VAL_POD_AS_BLOB_N(varialble, #varialble)
#define KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE(varialble) KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE_N(varialble, #varialble) //skip is_pod compile time check
#define KV_SERIALIZE_CONTAINER_POD_AS_BLOB(varialble) KV_SERIALIZE_CONTAINER_POD_AS_BLOB_N(varialble, #varialble)
+#define KV_SERIALIZE_OPT(variable,default_value) KV_SERIALIZE_OPT_N(variable, #variable, default_value)
}