Master Core  v0.0.9 - 49a5c0d97abf09ef2911ddfe8d9551df59f9efd3-dirty
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
serialize.h File Reference
#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>
+ Include dependency graph for serialize.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

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 >
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)
 

Variables

static const unsigned int MAX_SIZE = 0x02000000
 

Macro Definition Documentation

#define FLATDATA (   obj)    REF(CFlatData((char*)&(obj), (char*)&(obj) + sizeof(obj)))
#define IMPLEMENT_SERIALIZE (   statements)

Definition at line 54 of file serialize.h.

#define LIMITED_STRING (   obj,
 
)    REF(LimitedString< n >(REF(obj)))

Definition at line 311 of file serialize.h.

Referenced by ProcessMessage().

#define READDATA (   s,
  obj 
)    s.read((char*)&(obj), sizeof(obj))

Definition at line 103 of file serialize.h.

Referenced by ReadCompactSize(), ReadVarInt(), and Unserialize().

#define READWRITE (   obj)    (nSerSize += ::SerReadWrite(s, (obj), nType, nVersion, ser_action))

Definition at line 92 of file serialize.h.

Referenced by CAddrMan::IMPLEMENT_SERIALIZE().

#define VARINT (   obj)    REF(WrapVarInt(REF(obj)))
#define WRITEDATA (   s,
  obj 
)    s.write((char*)&(obj), sizeof(obj))

Definition at line 102 of file serialize.h.

Referenced by Serialize(), WriteCompactSize(), and WriteVarInt().

Typedef Documentation

typedef std::vector<char, zero_after_free_allocator<char> > CSerializeData

Definition at line 832 of file serialize.h.

Enumeration Type Documentation

anonymous enum
Enumerator
SER_NETWORK 
SER_DISK 
SER_GETHASH 

Definition at line 46 of file serialize.h.

Function Documentation

unsigned int GetSerializeSize ( char  a,
int  ,
int  = 0 
)
inline
unsigned int GetSerializeSize ( signed char  a,
int  ,
int  = 0 
)
inline

Definition at line 106 of file serialize.h.

unsigned int GetSerializeSize ( unsigned char  a,
int  ,
int  = 0 
)
inline

Definition at line 107 of file serialize.h.

unsigned int GetSerializeSize ( signed short  a,
int  ,
int  = 0 
)
inline

Definition at line 108 of file serialize.h.

unsigned int GetSerializeSize ( unsigned short  a,
int  ,
int  = 0 
)
inline

Definition at line 109 of file serialize.h.

unsigned int GetSerializeSize ( signed int  a,
int  ,
int  = 0 
)
inline

Definition at line 110 of file serialize.h.

unsigned int GetSerializeSize ( unsigned int  a,
int  ,
int  = 0 
)
inline

Definition at line 111 of file serialize.h.

unsigned int GetSerializeSize ( signed long  a,
int  ,
int  = 0 
)
inline

Definition at line 112 of file serialize.h.

unsigned int GetSerializeSize ( unsigned long  a,
int  ,
int  = 0 
)
inline

Definition at line 113 of file serialize.h.

unsigned int GetSerializeSize ( signed long long  a,
int  ,
int  = 0 
)
inline

Definition at line 114 of file serialize.h.

unsigned int GetSerializeSize ( unsigned long long  a,
int  ,
int  = 0 
)
inline

Definition at line 115 of file serialize.h.

unsigned int GetSerializeSize ( float  a,
int  ,
int  = 0 
)
inline

Definition at line 116 of file serialize.h.

unsigned int GetSerializeSize ( double  a,
int  ,
int  = 0 
)
inline

Definition at line 117 of file serialize.h.

unsigned int GetSerializeSize ( bool  a,
int  ,
int  = 0 
)
inline

Definition at line 147 of file serialize.h.

template<typename C >
unsigned int GetSerializeSize ( const std::basic_string< C > &  str,
int  ,
int  = 0 
)

Definition at line 491 of file serialize.h.

References GetSizeOfCompactSize().

+ Here is the call graph for this function:

template<typename T , typename A >
unsigned int GetSerializeSize ( const std::vector< T, A > &  v,
int  nType,
int  nVersion 
)
inline

Definition at line 534 of file serialize.h.

References GetSerializeSize_impl().

+ Here is the call graph for this function:

unsigned int GetSerializeSize ( const CScript v,
int  nType,
int  nVersion 
)
inline

Definition at line 608 of file serialize.h.

References GetSerializeSize().

+ Here is the call graph for this function:

template<typename K , typename T >
unsigned int GetSerializeSize ( const std::pair< K, T > &  item,
int  nType,
int  nVersion 
)

Definition at line 631 of file serialize.h.

References GetSerializeSize().

+ Here is the call graph for this function:

template<typename T0 , typename T1 , typename T2 >
unsigned int GetSerializeSize ( const boost::tuple< T0, T1, T2 > &  item,
int  nType,
int  nVersion 
)

Definition at line 656 of file serialize.h.

References GetSerializeSize().

+ Here is the call graph for this function:

template<typename T0 , typename T1 , typename T2 , typename T3 >
unsigned int GetSerializeSize ( const boost::tuple< T0, T1, T2, T3 > &  item,
int  nType,
int  nVersion 
)

Definition at line 687 of file serialize.h.

References GetSerializeSize().

+ Here is the call graph for this function:

template<typename K , typename T , typename Pred , typename A >
unsigned int GetSerializeSize ( const std::map< K, T, Pred, A > &  m,
int  nType,
int  nVersion 
)

Definition at line 721 of file serialize.h.

References GetSerializeSize(), and GetSizeOfCompactSize().

+ Here is the call graph for this function:

template<typename K , typename Pred , typename A >
unsigned int GetSerializeSize ( const std::set< K, Pred, A > &  m,
int  nType,
int  nVersion 
)

Definition at line 757 of file serialize.h.

References GetSerializeSize(), and GetSizeOfCompactSize().

+ Here is the call graph for this function:

template<typename T >
unsigned int GetSerializeSize ( const T &  a,
long  nType,
int  nVersion 
)
inline

Definition at line 466 of file serialize.h.

template<typename T , typename A >
unsigned int GetSerializeSize_impl ( const std::vector< T, A > &  v,
int  nType,
int  nVersion,
const boost::true_type &   
)

Definition at line 519 of file serialize.h.

References GetSizeOfCompactSize().

Referenced by GetSerializeSize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T , typename A >
unsigned int GetSerializeSize_impl ( const std::vector< T, A > &  v,
int  nType,
int  nVersion,
const boost::false_type &   
)

Definition at line 525 of file serialize.h.

References GetSerializeSize(), and GetSizeOfCompactSize().

+ Here is the call graph for this function:

unsigned int GetSizeOfCompactSize ( uint64_t  nSize)
inline

Definition at line 163 of file serialize.h.

Referenced by ConnectBlock(), LimitedString< Limit >::GetSerializeSize(), GetSerializeSize(), and GetSerializeSize_impl().

+ Here is the caller graph for this function:

template<typename I >
unsigned int GetSizeOfVarInt ( n)
inline

Definition at line 265 of file serialize.h.

template<typename Stream >
uint64_t ReadCompactSize ( Stream &  is)

Definition at line 204 of file serialize.h.

References MAX_SIZE, and READDATA.

Referenced by CPubKey::Unserialize(), LimitedString< Limit >::Unserialize(), Unserialize(), and Unserialize_impl().

+ Here is the caller graph for this function:

template<typename Stream , typename I >
I ReadVarInt ( Stream &  is)

Definition at line 295 of file serialize.h.

References READDATA.

template<typename T >
T& REF ( const T &  val)
inline

Definition at line 35 of file serialize.h.

Referenced by CCoins::GetSerializeSize(), CTxInUndo::GetSerializeSize(), CCoins::Serialize(), CTxInUndo::Serialize(), CCoins::Unserialize(), CTxInUndo::Unserialize(), and CScriptCompressor::Unserialize().

+ Here is the caller graph for this function:

template<typename Stream >
void Serialize ( Stream &  s,
char  a,
int  ,
int  = 0 
)
inline

Definition at line 119 of file serialize.h.

References WRITEDATA.

Referenced by CHashWriter::operator<<(), CAutoFile::operator<<(), CTxInUndo::Serialize(), Serialize(), Serialize_impl(), and SerReadWrite().

+ Here is the caller graph for this function:

template<typename Stream >
void Serialize ( Stream &  s,
signed char  a,
int  ,
int  = 0 
)
inline

Definition at line 120 of file serialize.h.

References WRITEDATA.

template<typename Stream >
void Serialize ( Stream &  s,
unsigned char  a,
int  ,
int  = 0 
)
inline

Definition at line 121 of file serialize.h.

References WRITEDATA.

template<typename Stream >
void Serialize ( Stream &  s,
signed short  a,
int  ,
int  = 0 
)
inline

Definition at line 122 of file serialize.h.

References WRITEDATA.

template<typename Stream >
void Serialize ( Stream &  s,
unsigned short  a,
int  ,
int  = 0 
)
inline

Definition at line 123 of file serialize.h.

References WRITEDATA.

template<typename Stream >
void Serialize ( Stream &  s,
signed int  a,
int  ,
int  = 0 
)
inline

Definition at line 124 of file serialize.h.

References WRITEDATA.

template<typename Stream >
void Serialize ( Stream &  s,
unsigned int  a,
int  ,
int  = 0 
)
inline

Definition at line 125 of file serialize.h.

References WRITEDATA.

template<typename Stream >
void Serialize ( Stream &  s,
signed long  a,
int  ,
int  = 0 
)
inline

Definition at line 126 of file serialize.h.

References WRITEDATA.

template<typename Stream >
void Serialize ( Stream &  s,
unsigned long  a,
int  ,
int  = 0 
)
inline

Definition at line 127 of file serialize.h.

References WRITEDATA.

template<typename Stream >
void Serialize ( Stream &  s,
signed long long  a,
int  ,
int  = 0 
)
inline

Definition at line 128 of file serialize.h.

References WRITEDATA.

template<typename Stream >
void Serialize ( Stream &  s,
unsigned long long  a,
int  ,
int  = 0 
)
inline

Definition at line 129 of file serialize.h.

References WRITEDATA.

template<typename Stream >
void Serialize ( Stream &  s,
float  a,
int  ,
int  = 0 
)
inline

Definition at line 130 of file serialize.h.

References WRITEDATA.

template<typename Stream >
void Serialize ( Stream &  s,
double  a,
int  ,
int  = 0 
)
inline

Definition at line 131 of file serialize.h.

References WRITEDATA.

template<typename Stream >
void Serialize ( Stream &  s,
bool  a,
int  ,
int  = 0 
)
inline

Definition at line 148 of file serialize.h.

References WRITEDATA.

template<typename Stream , typename C >
void Serialize ( Stream &  os,
const std::basic_string< C > &  str,
int  ,
int  = 0 
)

Definition at line 497 of file serialize.h.

References WriteCompactSize().

+ Here is the call graph for this function:

template<typename Stream , typename T , typename A >
void Serialize ( Stream &  os,
const std::vector< T, A > &  v,
int  nType,
int  nVersion 
)
inline

Definition at line 557 of file serialize.h.

References Serialize_impl().

+ Here is the call graph for this function:

template<typename Stream >
void Serialize ( Stream &  os,
const CScript v,
int  nType,
int  nVersion 
)

Definition at line 614 of file serialize.h.

References Serialize().

+ Here is the call graph for this function:

template<typename Stream , typename K , typename T >
void Serialize ( Stream &  os,
const std::pair< K, T > &  item,
int  nType,
int  nVersion 
)

Definition at line 637 of file serialize.h.

References Serialize().

+ Here is the call graph for this function:

template<typename Stream , typename T0 , typename T1 , typename T2 >
void Serialize ( Stream &  os,
const boost::tuple< T0, T1, T2 > &  item,
int  nType,
int  nVersion 
)

Definition at line 666 of file serialize.h.

References Serialize().

+ Here is the call graph for this function:

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 
)

Definition at line 698 of file serialize.h.

References Serialize().

+ Here is the call graph for this function:

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 
)

Definition at line 730 of file serialize.h.

References Serialize(), and WriteCompactSize().

+ Here is the call graph for this function:

template<typename Stream , typename K , typename Pred , typename A >
void Serialize ( Stream &  os,
const std::set< K, Pred, A > &  m,
int  nType,
int  nVersion 
)

Definition at line 766 of file serialize.h.

References Serialize(), and WriteCompactSize().

+ Here is the call graph for this function:

template<typename Stream , typename T >
void Serialize ( Stream &  os,
const T &  a,
long  nType,
int  nVersion 
)
inline

Definition at line 472 of file serialize.h.

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 &   
)

Definition at line 541 of file serialize.h.

References WriteCompactSize().

Referenced by Serialize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 &   
)

Definition at line 549 of file serialize.h.

References Serialize(), and WriteCompactSize().

+ Here is the call graph for this function:

template<typename Stream , typename T >
unsigned int SerReadWrite ( Stream &  s,
const T &  obj,
int  nType,
int  nVersion,
CSerActionGetSerializeSize  ser_action 
)
inline

Definition at line 797 of file serialize.h.

References GetSerializeSize().

+ Here is the call graph for this function:

template<typename Stream , typename T >
unsigned int SerReadWrite ( Stream &  s,
const T &  obj,
int  nType,
int  nVersion,
CSerActionSerialize  ser_action 
)
inline

Definition at line 803 of file serialize.h.

References Serialize().

+ Here is the call graph for this function:

template<typename Stream , typename T >
unsigned int SerReadWrite ( Stream &  s,
T &  obj,
int  nType,
int  nVersion,
CSerActionUnserialize  ser_action 
)
inline

Definition at line 810 of file serialize.h.

References Unserialize().

+ Here is the call graph for this function:

template<typename Stream >
void Unserialize ( Stream &  s,
char &  a,
int  ,
int  = 0 
)
inline

Definition at line 133 of file serialize.h.

References READDATA.

Referenced by CDataStream::operator>>(), CAutoFile::operator>>(), CBufferedFile::operator>>(), SerReadWrite(), CTxInUndo::Unserialize(), Unserialize(), and Unserialize_impl().

+ Here is the caller graph for this function:

template<typename Stream >
void Unserialize ( Stream &  s,
signed char &  a,
int  ,
int  = 0 
)
inline

Definition at line 134 of file serialize.h.

References READDATA.

template<typename Stream >
void Unserialize ( Stream &  s,
unsigned char &  a,
int  ,
int  = 0 
)
inline

Definition at line 135 of file serialize.h.

References READDATA.

template<typename Stream >
void Unserialize ( Stream &  s,
signed short &  a,
int  ,
int  = 0 
)
inline

Definition at line 136 of file serialize.h.

References READDATA.

template<typename Stream >
void Unserialize ( Stream &  s,
unsigned short &  a,
int  ,
int  = 0 
)
inline

Definition at line 137 of file serialize.h.

References READDATA.

template<typename Stream >
void Unserialize ( Stream &  s,
signed int a,
int  ,
int  = 0 
)
inline

Definition at line 138 of file serialize.h.

References READDATA.

template<typename Stream >
void Unserialize ( Stream &  s,
unsigned int a,
int  ,
int  = 0 
)
inline

Definition at line 139 of file serialize.h.

References READDATA.

template<typename Stream >
void Unserialize ( Stream &  s,
signed long &  a,
int  ,
int  = 0 
)
inline

Definition at line 140 of file serialize.h.

References READDATA.

template<typename Stream >
void Unserialize ( Stream &  s,
unsigned long &  a,
int  ,
int  = 0 
)
inline

Definition at line 141 of file serialize.h.

References READDATA.

template<typename Stream >
void Unserialize ( Stream &  s,
signed long long &  a,
int  ,
int  = 0 
)
inline

Definition at line 142 of file serialize.h.

References READDATA.

template<typename Stream >
void Unserialize ( Stream &  s,
unsigned long long &  a,
int  ,
int  = 0 
)
inline

Definition at line 143 of file serialize.h.

References READDATA.

template<typename Stream >
void Unserialize ( Stream &  s,
float &  a,
int  ,
int  = 0 
)
inline

Definition at line 144 of file serialize.h.

References READDATA.

template<typename Stream >
void Unserialize ( Stream &  s,
double &  a,
int  ,
int  = 0 
)
inline

Definition at line 145 of file serialize.h.

References READDATA.

template<typename Stream >
void Unserialize ( Stream &  s,
bool &  a,
int  ,
int  = 0 
)
inline

Definition at line 149 of file serialize.h.

References READDATA.

template<typename Stream , typename C >
void Unserialize ( Stream &  is,
std::basic_string< C > &  str,
int  ,
int  = 0 
)

Definition at line 505 of file serialize.h.

References ReadCompactSize().

+ Here is the call graph for this function:

template<typename Stream , typename T , typename A >
void Unserialize ( Stream &  is,
std::vector< T, A > &  v,
int  nType,
int  nVersion 
)
inline

Definition at line 598 of file serialize.h.

References Unserialize_impl().

+ Here is the call graph for this function:

template<typename Stream >
void Unserialize ( Stream &  is,
CScript v,
int  nType,
int  nVersion 
)

Definition at line 620 of file serialize.h.

References Unserialize().

+ Here is the call graph for this function:

template<typename Stream , typename K , typename T >
void Unserialize ( Stream &  is,
std::pair< K, T > &  item,
int  nType,
int  nVersion 
)

Definition at line 644 of file serialize.h.

References Unserialize().

+ Here is the call graph for this function:

template<typename Stream , typename T0 , typename T1 , typename T2 >
void Unserialize ( Stream &  is,
boost::tuple< T0, T1, T2 > &  item,
int  nType,
int  nVersion 
)

Definition at line 674 of file serialize.h.

References Unserialize().

+ Here is the call graph for this function:

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 
)

Definition at line 707 of file serialize.h.

References Unserialize().

+ Here is the call graph for this function:

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 
)

Definition at line 738 of file serialize.h.

References ReadCompactSize(), and Unserialize().

+ Here is the call graph for this function:

template<typename Stream , typename K , typename Pred , typename A >
void Unserialize ( Stream &  is,
std::set< K, Pred, A > &  m,
int  nType,
int  nVersion 
)

Definition at line 774 of file serialize.h.

References ReadCompactSize(), and Unserialize().

+ Here is the call graph for this function:

template<typename Stream , typename T >
void Unserialize ( Stream &  is,
T &  a,
long  nType,
int  nVersion 
)
inline

Definition at line 478 of file serialize.h.

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 &   
)

Definition at line 564 of file serialize.h.

References ReadCompactSize().

Referenced by Unserialize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 &   
)

Definition at line 580 of file serialize.h.

References ReadCompactSize(), and Unserialize().

+ Here is the call graph for this function:

template<typename I >
CVarInt<I> WrapVarInt ( I &  n)

Definition at line 403 of file serialize.h.

template<typename Stream >
void WriteCompactSize ( Stream &  os,
uint64_t  nSize 
)

Definition at line 172 of file serialize.h.

References WRITEDATA.

Referenced by CPubKey::Serialize(), LimitedString< Limit >::Serialize(), Serialize(), and Serialize_impl().

+ Here is the caller graph for this function:

template<typename Stream , typename I >
void WriteVarInt ( Stream &  os,
n 
)

Definition at line 278 of file serialize.h.

References WRITEDATA.

Variable Documentation

const unsigned int MAX_SIZE = 0x02000000
static