![]() |
Anoncoin
0.9.4
P2P Digital Currency
|
#include "allocators.h"
#include <algorithm>
#include <assert.h>
#include <limits>
#include <ios>
#include <map>
#include <set>
#include <stdint.h>
#include <string>
#include <string.h>
#include <utility>
#include <vector>
#include <boost/tuple/tuple.hpp>
#include <boost/type_traits/is_fundamental.hpp>
Go to the source code of this file.
Classes | |
class | CFlatData |
Wrapper for serializing arrays and POD. More... | |
class | CVarInt< I > |
class | LimitedString< Limit > |
class | CSerActionGetSerializeSize |
class | CSerActionSerialize |
class | CSerActionUnserialize |
struct | ser_streamplaceholder |
class | CDataStream |
Double ended buffer combining vector and stream-like interfaces. More... | |
class | CAutoFile |
RAII wrapper for FILE*. More... | |
class | CBufferedFile |
Wrapper around a FILE* that implements a ring buffer to deserialize from. More... | |
Macros | |
#define | IMPLEMENT_SERIALIZE(statements) |
#define | READWRITE(obj) (nSerSize += ::SerReadWrite(s, (obj), nType, nVersion, ser_action)) |
#define | WRITEDATA(s, obj) s.write((char*)&(obj), sizeof(obj)) |
#define | READDATA(s, obj) s.read((char*)&(obj), sizeof(obj)) |
#define | FLATDATA(obj) REF(CFlatData((char*)&(obj), (char*)&(obj) + sizeof(obj))) |
#define | VARINT(obj) REF(WrapVarInt(REF(obj))) |
#define | LIMITED_STRING(obj, n) REF(LimitedString< n >(REF(obj))) |
Typedefs | |
typedef std::vector< char, zero_after_free_allocator< char > > | CSerializeData |
Enumerations | |
enum | { SER_NETWORK = (1 << 0), SER_DISK = (1 << 1), SER_GETHASH = (1 << 2) } |
Functions | |
template<typename T > | |
T & | REF (const T &val) |
unsigned int | GetSerializeSize (char a, int, int=0) |
unsigned int | GetSerializeSize (signed char a, int, int=0) |
unsigned int | GetSerializeSize (unsigned char a, int, int=0) |
unsigned int | GetSerializeSize (signed short a, int, int=0) |
unsigned int | GetSerializeSize (unsigned short a, int, int=0) |
unsigned int | GetSerializeSize (signed int a, int, int=0) |
unsigned int | GetSerializeSize (unsigned int a, int, int=0) |
unsigned int | GetSerializeSize (signed long a, int, int=0) |
unsigned int | GetSerializeSize (unsigned long a, int, int=0) |
unsigned int | GetSerializeSize (signed long long a, int, int=0) |
unsigned int | GetSerializeSize (unsigned long long a, int, int=0) |
unsigned int | GetSerializeSize (float a, int, int=0) |
unsigned int | GetSerializeSize (double a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, char a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, signed char a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, unsigned char a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, signed short a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, unsigned short a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, signed int a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, unsigned int a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, signed long a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, unsigned long a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, signed long long a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, unsigned long long a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, float a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, double a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, char &a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, signed char &a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, unsigned char &a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, signed short &a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, unsigned short &a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, signed int &a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, unsigned int &a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, signed long &a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, unsigned long &a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, signed long long &a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, unsigned long long &a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, float &a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, double &a, int, int=0) |
unsigned int | GetSerializeSize (bool a, int, int=0) |
template<typename Stream > | |
void | Serialize (Stream &s, bool a, int, int=0) |
template<typename Stream > | |
void | Unserialize (Stream &s, bool &a, int, int=0) |
unsigned int | GetSizeOfCompactSize (uint64_t nSize) |
template<typename Stream > | |
void | WriteCompactSize (Stream &os, uint64_t nSize) |
template<typename Stream > | |
uint64_t | ReadCompactSize (Stream &is) |
template<typename I > | |
unsigned int | GetSizeOfVarInt (I n) |
template<typename Stream , typename I > | |
void | WriteVarInt (Stream &os, I n) |
template<typename Stream , typename I > | |
I | ReadVarInt (Stream &is) |
template<typename I > | |
CVarInt< I > | WrapVarInt (I &n) |
template<typename C > | |
unsigned int | GetSerializeSize (const std::basic_string< C > &str, int, int=0) |
template<typename Stream , typename C > | |
void | Serialize (Stream &os, const std::basic_string< C > &str, int, int=0) |
template<typename Stream , typename C > | |
void | Unserialize (Stream &is, std::basic_string< C > &str, int, int=0) |
template<typename T , typename A > | |
unsigned int | GetSerializeSize_impl (const std::vector< T, A > &v, int nType, int nVersion, const boost::true_type &) |
template<typename T , typename A > | |
unsigned int | GetSerializeSize_impl (const std::vector< T, A > &v, int nType, int nVersion, const boost::false_type &) |
template<typename T , typename A > | |
unsigned int | GetSerializeSize (const std::vector< T, A > &v, int nType, int nVersion) |
template<typename Stream , typename T , typename A > | |
void | Serialize_impl (Stream &os, const std::vector< T, A > &v, int nType, int nVersion, const boost::true_type &) |
template<typename Stream , typename T , typename A > | |
void | Serialize_impl (Stream &os, const std::vector< T, A > &v, int nType, int nVersion, const boost::false_type &) |
template<typename Stream , typename T , typename A > | |
void | Serialize (Stream &os, const std::vector< T, A > &v, int nType, int nVersion) |
template<typename Stream , typename T , typename A > | |
void | Unserialize_impl (Stream &is, std::vector< T, A > &v, int nType, int nVersion, const boost::true_type &) |
template<typename Stream , typename T , typename A > | |
void | Unserialize_impl (Stream &is, std::vector< T, A > &v, int nType, int nVersion, const boost::false_type &) |
template<typename Stream , typename T , typename A > | |
void | Unserialize (Stream &is, std::vector< T, A > &v, int nType, int nVersion) |
unsigned int | GetSerializeSize (const CScript &v, int nType, int nVersion) |
template<typename Stream > | |
void | Serialize (Stream &os, const CScript &v, int nType, int nVersion) |
template<typename Stream > | |
void | Unserialize (Stream &is, CScript &v, int nType, int nVersion) |
template<typename K , typename T > | |
unsigned int | GetSerializeSize (const std::pair< K, T > &item, int nType, int nVersion) |
template<typename Stream , typename K , typename T > | |
void | Serialize (Stream &os, const std::pair< K, T > &item, int nType, int nVersion) |
template<typename Stream , typename K , typename T > | |
void | Unserialize (Stream &is, std::pair< K, T > &item, int nType, int nVersion) |
template<typename T0 , typename T1 , typename T2 > | |
unsigned int | GetSerializeSize (const boost::tuple< T0, T1, T2 > &item, int nType, int nVersion) |
template<typename Stream , typename T0 , typename T1 , typename T2 > | |
void | Serialize (Stream &os, const boost::tuple< T0, T1, T2 > &item, int nType, int nVersion) |
template<typename Stream , typename T0 , typename T1 , typename T2 > | |
void | Unserialize (Stream &is, boost::tuple< T0, T1, T2 > &item, int nType, int nVersion) |
template<typename T0 , typename T1 , typename T2 , typename T3 > | |
unsigned int | GetSerializeSize (const boost::tuple< T0, T1, T2, T3 > &item, int nType, int nVersion) |
template<typename Stream , typename T0 , typename T1 , typename T2 , typename T3 > | |
void | Serialize (Stream &os, const boost::tuple< T0, T1, T2, T3 > &item, int nType, int nVersion) |
template<typename Stream , typename T0 , typename T1 , typename T2 , typename T3 > | |
void | Unserialize (Stream &is, boost::tuple< T0, T1, T2, T3 > &item, int nType, int nVersion) |
template<typename K , typename T , typename Pred , typename A > | |
unsigned int | GetSerializeSize (const std::map< K, T, Pred, A > &m, int nType, int nVersion) |
template<typename Stream , typename K , typename T , typename Pred , typename A > | |
void | Serialize (Stream &os, const std::map< K, T, Pred, A > &m, int nType, int nVersion) |
template<typename Stream , typename K , typename T , typename Pred , typename A > | |
void | Unserialize (Stream &is, std::map< K, T, Pred, A > &m, int nType, int nVersion) |
template<typename K , typename Pred , typename A > | |
unsigned int | GetSerializeSize (const std::set< K, Pred, A > &m, int nType, int nVersion) |
template<typename Stream , typename K , typename Pred , typename A > | |
void | Serialize (Stream &os, const std::set< K, Pred, A > &m, int nType, int nVersion) |
template<typename Stream , typename K , typename Pred , typename A > | |
void | Unserialize (Stream &is, std::set< K, Pred, A > &m, int nType, int nVersion) |
template<typename T > | |
unsigned int | GetSerializeSize (const T &a, long nType, int nVersion) |
template<typename Stream , typename T > | |
void | Serialize (Stream &os, const T &a, long nType, int nVersion) |
template<typename Stream , typename T > | |
void | Unserialize (Stream &is, T &a, long nType, int nVersion) |
template<typename Stream , typename T > | |
unsigned int | SerReadWrite (Stream &s, const T &obj, int nType, int nVersion, CSerActionGetSerializeSize ser_action) |
template<typename Stream , typename T > | |
unsigned int | SerReadWrite (Stream &s, const T &obj, int nType, int nVersion, CSerActionSerialize ser_action) |
template<typename Stream , typename T > | |
unsigned int | SerReadWrite (Stream &s, T &obj, int nType, int nVersion, CSerActionUnserialize ser_action) |
Definition at line 318 of file serialize.h.
#define IMPLEMENT_SERIALIZE | ( | statements | ) |
Definition at line 63 of file serialize.h.
#define LIMITED_STRING | ( | obj, | |
n | |||
) | REF(LimitedString< n >(REF(obj))) |
Definition at line 320 of file serialize.h.
#define READDATA | ( | s, | |
obj | |||
) | s.read((char*)&(obj), sizeof(obj)) |
Definition at line 112 of file serialize.h.
#define READWRITE | ( | obj | ) | (nSerSize += ::SerReadWrite(s, (obj), nType, nVersion, ser_action)) |
Definition at line 101 of file serialize.h.
#define VARINT | ( | obj | ) | REF(WrapVarInt(REF(obj))) |
Definition at line 319 of file serialize.h.
#define WRITEDATA | ( | s, | |
obj | |||
) | s.write((char*)&(obj), sizeof(obj)) |
Definition at line 111 of file serialize.h.
typedef std::vector<char, zero_after_free_allocator<char> > CSerializeData |
Definition at line 841 of file serialize.h.
anonymous enum |
Enumerator | |
---|---|
SER_NETWORK | |
SER_DISK | |
SER_GETHASH |
Definition at line 52 of file serialize.h.
|
inline |
|
inline |
Definition at line 115 of file serialize.h.
|
inline |
Definition at line 116 of file serialize.h.
|
inline |
Definition at line 117 of file serialize.h.
|
inline |
Definition at line 118 of file serialize.h.
|
inline |
Definition at line 119 of file serialize.h.
|
inline |
Definition at line 120 of file serialize.h.
|
inline |
Definition at line 121 of file serialize.h.
|
inline |
Definition at line 122 of file serialize.h.
|
inline |
Definition at line 123 of file serialize.h.
|
inline |
Definition at line 124 of file serialize.h.
|
inline |
Definition at line 125 of file serialize.h.
|
inline |
Definition at line 126 of file serialize.h.
|
inline |
Definition at line 156 of file serialize.h.
unsigned int GetSerializeSize | ( | const std::basic_string< C > & | str, |
int | , | ||
int | = 0 |
||
) |
|
inline |
|
inline |
unsigned int GetSerializeSize | ( | const std::pair< K, T > & | item, |
int | nType, | ||
int | nVersion | ||
) |
unsigned int GetSerializeSize | ( | const boost::tuple< T0, T1, T2 > & | item, |
int | nType, | ||
int | nVersion | ||
) |
unsigned int GetSerializeSize | ( | const boost::tuple< T0, T1, T2, T3 > & | item, |
int | nType, | ||
int | nVersion | ||
) |
unsigned int GetSerializeSize | ( | const std::map< K, T, Pred, A > & | m, |
int | nType, | ||
int | nVersion | ||
) |
unsigned int GetSerializeSize | ( | const std::set< K, Pred, A > & | m, |
int | nType, | ||
int | nVersion | ||
) |
|
inline |
Definition at line 475 of file serialize.h.
unsigned int GetSerializeSize_impl | ( | const std::vector< T, A > & | v, |
int | nType, | ||
int | nVersion, | ||
const boost::true_type & | |||
) |
Definition at line 528 of file serialize.h.
unsigned int GetSerializeSize_impl | ( | const std::vector< T, A > & | v, |
int | nType, | ||
int | nVersion, | ||
const boost::false_type & | |||
) |
|
inline |
|
inline |
Definition at line 274 of file serialize.h.
uint64_t ReadCompactSize | ( | Stream & | is | ) |
I ReadVarInt | ( | Stream & | is | ) |
Definition at line 304 of file serialize.h.
|
inline |
|
inline |
|
inline |
Definition at line 129 of file serialize.h.
|
inline |
Definition at line 130 of file serialize.h.
|
inline |
Definition at line 131 of file serialize.h.
|
inline |
Definition at line 132 of file serialize.h.
|
inline |
Definition at line 133 of file serialize.h.
|
inline |
Definition at line 134 of file serialize.h.
|
inline |
Definition at line 135 of file serialize.h.
|
inline |
Definition at line 136 of file serialize.h.
|
inline |
Definition at line 137 of file serialize.h.
|
inline |
Definition at line 138 of file serialize.h.
|
inline |
Definition at line 139 of file serialize.h.
|
inline |
Definition at line 140 of file serialize.h.
|
inline |
Definition at line 157 of file serialize.h.
void Serialize | ( | Stream & | os, |
const std::basic_string< C > & | str, | ||
int | , | ||
int | = 0 |
||
) |
|
inline |
void Serialize | ( | Stream & | os, |
const CScript & | v, | ||
int | nType, | ||
int | nVersion | ||
) |
void Serialize | ( | Stream & | os, |
const std::pair< K, T > & | item, | ||
int | nType, | ||
int | nVersion | ||
) |
void Serialize | ( | Stream & | os, |
const boost::tuple< T0, T1, T2 > & | item, | ||
int | nType, | ||
int | nVersion | ||
) |
void Serialize | ( | Stream & | os, |
const boost::tuple< T0, T1, T2, T3 > & | item, | ||
int | nType, | ||
int | nVersion | ||
) |
void Serialize | ( | Stream & | os, |
const std::map< K, T, Pred, A > & | m, | ||
int | nType, | ||
int | nVersion | ||
) |
void Serialize | ( | Stream & | os, |
const std::set< K, Pred, A > & | m, | ||
int | nType, | ||
int | nVersion | ||
) |
|
inline |
Definition at line 481 of file serialize.h.
void Serialize_impl | ( | Stream & | os, |
const std::vector< T, A > & | v, | ||
int | nType, | ||
int | nVersion, | ||
const boost::true_type & | |||
) |
Definition at line 550 of file serialize.h.
void Serialize_impl | ( | Stream & | os, |
const std::vector< T, A > & | v, | ||
int | nType, | ||
int | nVersion, | ||
const boost::false_type & | |||
) |
|
inline |
Definition at line 806 of file serialize.h.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 143 of file serialize.h.
|
inline |
Definition at line 144 of file serialize.h.
|
inline |
Definition at line 145 of file serialize.h.
|
inline |
Definition at line 146 of file serialize.h.
|
inline |
Definition at line 147 of file serialize.h.
|
inline |
Definition at line 148 of file serialize.h.
|
inline |
Definition at line 149 of file serialize.h.
|
inline |
Definition at line 150 of file serialize.h.
|
inline |
Definition at line 151 of file serialize.h.
|
inline |
Definition at line 152 of file serialize.h.
|
inline |
Definition at line 153 of file serialize.h.
|
inline |
Definition at line 154 of file serialize.h.
|
inline |
Definition at line 158 of file serialize.h.
void Unserialize | ( | Stream & | is, |
std::basic_string< C > & | str, | ||
int | , | ||
int | = 0 |
||
) |
|
inline |
void Unserialize | ( | Stream & | is, |
CScript & | v, | ||
int | nType, | ||
int | nVersion | ||
) |
void Unserialize | ( | Stream & | is, |
std::pair< K, T > & | item, | ||
int | nType, | ||
int | nVersion | ||
) |
void Unserialize | ( | Stream & | is, |
boost::tuple< T0, T1, T2 > & | item, | ||
int | nType, | ||
int | nVersion | ||
) |
void Unserialize | ( | Stream & | is, |
boost::tuple< T0, T1, T2, T3 > & | item, | ||
int | nType, | ||
int | nVersion | ||
) |
void Unserialize | ( | Stream & | is, |
std::map< K, T, Pred, A > & | m, | ||
int | nType, | ||
int | nVersion | ||
) |
void Unserialize | ( | Stream & | is, |
std::set< K, Pred, A > & | m, | ||
int | nType, | ||
int | nVersion | ||
) |
|
inline |
Definition at line 487 of file serialize.h.
void Unserialize_impl | ( | Stream & | is, |
std::vector< T, A > & | v, | ||
int | nType, | ||
int | nVersion, | ||
const boost::true_type & | |||
) |
Definition at line 573 of file serialize.h.
void Unserialize_impl | ( | Stream & | is, |
std::vector< T, A > & | v, | ||
int | nType, | ||
int | nVersion, | ||
const boost::false_type & | |||
) |
CVarInt<I> WrapVarInt | ( | I & | n | ) |
Definition at line 412 of file serialize.h.
void WriteCompactSize | ( | Stream & | os, |
uint64_t | nSize | ||
) |
void WriteVarInt | ( | Stream & | os, |
I | n | ||
) |
Definition at line 287 of file serialize.h.