xrpld
Loading...
Searching...
No Matches
xrpl::compression Namespace Reference

Enumerations

enum class  Algorithm : std::uint8_t { None = 0x00 , LZ4 = 0x90 }
enum class  Compressed : std::uint8_t { On , Off }

Functions

template<typename InputStream>
std::size_t decompress (InputStream &in, std::size_t inSize, std::uint8_t *decompressed, std::size_t decompressedSize, Algorithm algorithm=Algorithm::LZ4)
 Decompress input stream.
template<class BufferFactory>
std::size_t compress (void const *in, std::size_t inSize, BufferFactory &&bf, Algorithm algorithm=Algorithm::LZ4)
 Compress input data.

Variables

constexpr std::size_t kHeaderBytes = 6
constexpr std::size_t kHeaderBytesCompressed = 10

Enumeration Type Documentation

◆ Algorithm

Enumerator
None 
LZ4 

Definition at line 13 of file Compression.h.

◆ Compressed

Enumerator
On 
Off 

Definition at line 15 of file Compression.h.

Function Documentation

◆ decompress()

template<typename InputStream>
std::size_t xrpl::compression::decompress ( InputStream & in,
std::size_t inSize,
std::uint8_t * decompressed,
std::size_t decompressedSize,
Algorithm algorithm = Algorithm::LZ4 )

Decompress input stream.

Template Parameters
InputStreamZeroCopyInputStream
Parameters
inInput source stream
inSizeSize of compressed data
decompressedBuffer to hold decompressed message
algorithmCompression algorithm type
Returns
Size of decompressed data or zero if failed to decompress

Definition at line 27 of file Compression.h.

◆ compress()

template<class BufferFactory>
std::size_t xrpl::compression::compress ( void const * in,
std::size_t inSize,
BufferFactory && bf,
Algorithm algorithm = Algorithm::LZ4 )

Compress input data.

Template Parameters
BufferFactoryCallable object or lambda. Takes the requested buffer size and returns allocated buffer pointer.
Parameters
inData to compress
inSizeSize of the data
bfCompressed buffer allocator
algorithmCompression algorithm type
Returns
Size of compressed data, or zero if failed to compress

Definition at line 67 of file Compression.h.

Variable Documentation

◆ kHeaderBytes

std::size_t xrpl::compression::kHeaderBytes = 6
constexpr

Definition at line 8 of file Compression.h.

◆ kHeaderBytesCompressed

std::size_t xrpl::compression::kHeaderBytesCompressed = 10
constexpr

Definition at line 9 of file Compression.h.