Changeset View
Changeset View
Standalone View
Standalone View
src/serialize.h
Show First 20 Lines • Show All 982 Lines • ▼ Show 20 Lines | |||||
inline void WriteCompactSize(CSizeComputer &s, uint64_t nSize) { | inline void WriteCompactSize(CSizeComputer &s, uint64_t nSize) { | ||||
s.seek(GetSizeOfCompactSize(nSize)); | s.seek(GetSizeOfCompactSize(nSize)); | ||||
} | } | ||||
template <typename T> size_t GetSerializeSize(const T &t, int nVersion = 0) { | template <typename T> size_t GetSerializeSize(const T &t, int nVersion = 0) { | ||||
return (CSizeComputer(nVersion) << t).size(); | return (CSizeComputer(nVersion) << t).size(); | ||||
} | } | ||||
template <typename S, typename T> | template <typename... T> | ||||
size_t GetSerializeSize(const S &s, const T &t) { | size_t GetSerializeSizeMany(int nVersion, const T &... t) { | ||||
return (CSizeComputer(s.GetVersion()) << t).size(); | CSizeComputer sc(nVersion); | ||||
} | |||||
template <typename S, typename... T> | |||||
size_t GetSerializeSizeMany(const S &s, const T &... t) { | |||||
CSizeComputer sc(s.GetVersion()); | |||||
SerializeMany(sc, t...); | SerializeMany(sc, t...); | ||||
return sc.size(); | return sc.size(); | ||||
} | } | ||||
#endif // BITCOIN_SERIALIZE_H | #endif // BITCOIN_SERIALIZE_H |