aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core/cryptonote_boost_serialization.h
diff options
context:
space:
mode:
authorAntonio Juarez <antonio.maria.juarez@live.com>2014-03-03 22:07:58 +0000
committerAntonio Juarez <antonio.maria.juarez@live.com>2014-03-03 22:07:58 +0000
commit296ae46ed8f8f6e5f986f978febad302e3df231a (patch)
tree1629164454a239308f33c9e12afb22e7f3cd8eeb /src/cryptonote_core/cryptonote_boost_serialization.h
parentchanged name (diff)
downloadmonero-296ae46ed8f8f6e5f986f978febad302e3df231a.tar.xz
moved all stuff to github
Diffstat (limited to 'src/cryptonote_core/cryptonote_boost_serialization.h')
-rw-r--r--src/cryptonote_core/cryptonote_boost_serialization.h143
1 files changed, 143 insertions, 0 deletions
diff --git a/src/cryptonote_core/cryptonote_boost_serialization.h b/src/cryptonote_core/cryptonote_boost_serialization.h
new file mode 100644
index 000000000..80c497844
--- /dev/null
+++ b/src/cryptonote_core/cryptonote_boost_serialization.h
@@ -0,0 +1,143 @@
+// Copyright (c) 2012-2013 The Cryptonote developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#pragma once
+
+#include <boost/serialization/vector.hpp>
+#include <boost/serialization/utility.hpp>
+#include <boost/serialization/variant.hpp>
+#include <boost/serialization/set.hpp>
+#include <boost/serialization/map.hpp>
+#include <boost/foreach.hpp>
+#include <boost/serialization/is_bitwise_serializable.hpp>
+#include "cryptonote_basic.h"
+#include "common/unordered_containers_boost_serialization.h"
+#include "crypto/crypto.h"
+
+//namespace cryptonote {
+namespace boost
+{
+ namespace serialization
+ {
+
+ //---------------------------------------------------
+ template <class Archive>
+ inline void serialize(Archive &a, crypto::public_key &x, const boost::serialization::version_type ver)
+ {
+ a & reinterpret_cast<char (&)[sizeof(crypto::public_key)]>(x);
+ }
+ template <class Archive>
+ inline void serialize(Archive &a, crypto::secret_key &x, const boost::serialization::version_type ver)
+ {
+ a & reinterpret_cast<char (&)[sizeof(crypto::secret_key)]>(x);
+ }
+ template <class Archive>
+ inline void serialize(Archive &a, crypto::key_derivation &x, const boost::serialization::version_type ver)
+ {
+ a & reinterpret_cast<char (&)[sizeof(crypto::key_derivation)]>(x);
+ }
+ template <class Archive>
+ inline void serialize(Archive &a, crypto::key_image &x, const boost::serialization::version_type ver)
+ {
+ a & reinterpret_cast<char (&)[sizeof(crypto::key_image)]>(x);
+ }
+
+ template <class Archive>
+ inline void serialize(Archive &a, crypto::signature &x, const boost::serialization::version_type ver)
+ {
+ a & reinterpret_cast<char (&)[sizeof(crypto::signature)]>(x);
+ }
+ template <class Archive>
+ inline void serialize(Archive &a, crypto::hash &x, const boost::serialization::version_type ver)
+ {
+ a & reinterpret_cast<char (&)[sizeof(crypto::hash)]>(x);
+ }
+
+ template <class Archive>
+ inline void serialize(Archive &a, cryptonote::txout_to_script &x, const boost::serialization::version_type ver)
+ {
+ a & x.keys;
+ a & x.script;
+ }
+
+
+ template <class Archive>
+ inline void serialize(Archive &a, cryptonote::txout_to_key &x, const boost::serialization::version_type ver)
+ {
+ a & x.key;
+ }
+
+ template <class Archive>
+ inline void serialize(Archive &a, cryptonote::txout_to_scripthash &x, const boost::serialization::version_type ver)
+ {
+ a & x.hash;
+ }
+
+ template <class Archive>
+ inline void serialize(Archive &a, cryptonote::txin_gen &x, const boost::serialization::version_type ver)
+ {
+ a & x.height;
+ }
+
+ template <class Archive>
+ inline void serialize(Archive &a, cryptonote::txin_to_script &x, const boost::serialization::version_type ver)
+ {
+ a & x.prev;
+ a & x.prevout;
+ a & x.sigset;
+ }
+
+ template <class Archive>
+ inline void serialize(Archive &a, cryptonote::txin_to_scripthash &x, const boost::serialization::version_type ver)
+ {
+ a & x.prev;
+ a & x.prevout;
+ a & x.script;
+ a & x.sigset;
+ }
+
+ template <class Archive>
+ inline void serialize(Archive &a, cryptonote::txin_to_key &x, const boost::serialization::version_type ver)
+ {
+ a & x.amount;
+ a & x.key_offsets;
+ a & x.k_image;
+ }
+
+ template <class Archive>
+ inline void serialize(Archive &a, cryptonote::tx_out &x, const boost::serialization::version_type ver)
+ {
+ a & x.amount;
+ a & x.target;
+ }
+
+
+ template <class Archive>
+ inline void serialize(Archive &a, cryptonote::transaction &x, const boost::serialization::version_type ver)
+ {
+ a & x.version;
+ a & x.unlock_time;
+ a & x.vin;
+ a & x.vout;
+ a & x.extra;
+ a & x.signatures;
+ }
+
+
+ template <class Archive>
+ inline void serialize(Archive &a, cryptonote::block &b, const boost::serialization::version_type ver)
+ {
+ a & b.major_version;
+ a & b.minor_version;
+ a & b.timestamp;
+ a & b.prev_id;
+ a & b.nonce;
+ //------------------
+ a & b.miner_tx;
+ a & b.tx_hashes;
+ }
+}
+}
+
+//}