Bitcoin ABC 0.32.6
P2P Digital Currency
Public Member Functions | Protected Attributes | List of all members
SizeComputer Class Reference

GetSerializeSize implementations More...

#include <serialize.h>

Public Member Functions

 SizeComputer ()
 
void write (Span< const std::byte > src)
 
void seek (size_t _nSize)
 Pretend _nSize bytes are written, without specifying them. More...
 
template<typename T >
SizeComputeroperator<< (const T &obj)
 
size_t size () const
 

Protected Attributes

size_t nSize {0}
 

Detailed Description

GetSerializeSize implementations

Computing the serialized size of objects is done through a special stream object of type SizeComputer, which only records the number of bytes written to it.

If your Serialize or SerializationOp method has non-trivial overhead for serialization, it may be worthwhile to implement a specialized version for SizeComputer, which uses the s.seek() method to record bytes that would be written instead.

Definition at line 1194 of file serialize.h.

Constructor & Destructor Documentation

◆ SizeComputer()

SizeComputer::SizeComputer ( )
inline

Definition at line 1199 of file serialize.h.

Member Function Documentation

◆ operator<<()

template<typename T >
SizeComputer & SizeComputer::operator<< ( const T &  obj)
inline

Definition at line 1206 of file serialize.h.

Here is the call graph for this function:

◆ seek()

void SizeComputer::seek ( size_t  _nSize)
inline

Pretend _nSize bytes are written, without specifying them.

Definition at line 1204 of file serialize.h.

Here is the caller graph for this function:

◆ size()

size_t SizeComputer::size ( ) const
inline

Definition at line 1211 of file serialize.h.

Here is the caller graph for this function:

◆ write()

void SizeComputer::write ( Span< const std::byte >  src)
inline

Definition at line 1201 of file serialize.h.

Here is the call graph for this function:

Member Data Documentation

◆ nSize

size_t SizeComputer::nSize {0}
protected

Definition at line 1196 of file serialize.h.


The documentation for this class was generated from the following file: