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

Namespaces

namespace  tests

Classes

class  Backend
 A backend used for the NodeStore. More...
class  Database
 Persistency layer for NodeObject. More...
class  DatabaseRotating
class  BatchWriter
 Batch-writing assist logic. More...
class  DatabaseNodeImp
class  DatabaseRotatingImp
class  DecodedBlob
 Parsed key/value blob into NodeObject components. More...
class  EncodedBlob
 Convert a NodeObject from in-memory to database format. More...
class  ManagerImp
struct  varint_traits
struct  varint_traits< T, true >
class  DummyScheduler
 Simple NodeStore Scheduler that just performs the tasks synchronously. More...
class  Factory
 Base class for backend factories. More...
class  Manager
 Singleton for managing NodeStore factories and back ends. More...
struct  FetchReport
 Contains information about a fetch operation. More...
struct  BatchWriteReport
 Contains information about a batch write operation. More...
class  Scheduler
 Scheduling for asynchronous backend activity. More...
struct  Task
 Derived classes perform scheduled tasks. More...
struct  MemoryDB
class  MemoryFactory
class  MemoryBackend
class  NuDBBackend
class  NuDBFactory
class  NullBackend
class  NullFactory
class  Backend_test
class  NodeStoreBasic_test
class  Database_test
class  Progress
class  NuDBFactory_test
struct  LessThan
 Binary function that satisfies the strict-weak-ordering requirement. More...
class  TestBase
class  Sequence
class  Timing_test

Typedefs

using Batch = std::vector<std::shared_ptr<NodeObject>>
 A batch of NodeObjects to write at once.

Enumerations

enum class  FetchType { Synchronous , Async }
enum class  Status {
  Ok = 0 , NotFound = 1 , DataCorrupt = 2 , Unknown = 3 ,
  BackendError = 4 , CustomCode = 100
}
 Return codes from Backend operations. More...

Functions

template<class BufferFactory>
std::pair< void const *, std::size_tlz4Decompress (void const *in, std::size_t inSize, BufferFactory &&bf)
template<class BufferFactory>
std::pair< void const *, std::size_tlz4Compress (void const *in, std::size_t inSize, BufferFactory &&bf)
template<class BufferFactory>
std::pair< void const *, std::size_tnodeobjectDecompress (void const *in, std::size_t inSize, BufferFactory &&bf)
template<class = void>
void const * zero32 ()
template<class BufferFactory>
std::pair< void const *, std::size_tnodeobjectCompress (void const *in, std::size_t inSize, BufferFactory &&bf)
template<class = void>
void filterInner (void *in, std::size_t inSize)
template<class = void>
std::size_t readVarint (void const *buf, std::size_t buflen, std::size_t &t)
template<class T, std::enable_if_t< std::is_unsigned_v< T > > * = nullptr>
std::size_t sizeVarint (T v)
template<class = void>
std::size_t writeVarint (void *p0, std::size_t v)
template<class T, std::enable_if_t< std::is_same_v< T, varint > > * = nullptr>
void read (nudb::detail::istream &is, std::size_t &u)
template<class T, std::enable_if_t< std::is_same_v< T, varint > > * = nullptr>
void write (nudb::detail::ostream &os, std::size_t t)
void registerMemoryFactory (Manager &manager)
void registerNuDBFactory (Manager &manager)
void registerNullFactory (Manager &manager)
 BEAST_DEFINE_TESTSUITE (Backend, nodestore, xrpl)
 BEAST_DEFINE_TESTSUITE (NodeStoreBasic, nodestore, xrpl)
 BEAST_DEFINE_TESTSUITE (Database, nodestore, xrpl)
std::map< std::string, std::string, boost::beast::iless > parseArgs (std::string const &s)
 BEAST_DEFINE_TESTSUITE (NuDBFactory, xrpl_core, xrpl)
bool isSame (std::shared_ptr< NodeObject > const &lhs, std::shared_ptr< NodeObject > const &rhs)
 Returns true if objects are identical.
std::unique_ptr< BackendmakeBackend (Section const &config, Scheduler &scheduler, beast::Journal journal)
template<class Generator>
static void rngcpy (void *buffer, std::size_t bytes, Generator &g)
 BEAST_DEFINE_TESTSUITE_MANUAL_PRIO (Timing, nodestore, xrpl, 1)

Variables

static constexpr auto kBatchWritePreallocationSize = 256
static constexpr auto kBatchWriteLimitSize = 65536
MemoryFactorygMemoryFactory = nullptr

Typedef Documentation

◆ Batch

A batch of NodeObjects to write at once.

Definition at line 32 of file nodestore/Types.h.

Enumeration Type Documentation

◆ FetchType

enum class xrpl::NodeStore::FetchType
strong
Enumerator
Synchronous 
Async 

Definition at line 9 of file include/xrpl/nodestore/Scheduler.h.

◆ Status

enum class xrpl::NodeStore::Status
strong

Return codes from Backend operations.

Enumerator
Ok 
NotFound 
DataCorrupt 
Unknown 
BackendError 
CustomCode 

Definition at line 21 of file nodestore/Types.h.

Function Documentation

◆ lz4Decompress()

template<class BufferFactory>
std::pair< void const *, std::size_t > xrpl::NodeStore::lz4Decompress ( void const * in,
std::size_t inSize,
BufferFactory && bf )

Definition at line 24 of file codec.h.

◆ lz4Compress()

template<class BufferFactory>
std::pair< void const *, std::size_t > xrpl::NodeStore::lz4Compress ( void const * in,
std::size_t inSize,
BufferFactory && bf )

Definition at line 53 of file codec.h.

◆ nodeobjectDecompress()

template<class BufferFactory>
std::pair< void const *, std::size_t > xrpl::NodeStore::nodeobjectDecompress ( void const * in,
std::size_t inSize,
BufferFactory && bf )

Definition at line 85 of file codec.h.

◆ zero32()

template<class = void>
void const * xrpl::NodeStore::zero32 ( )

Definition at line 189 of file codec.h.

◆ nodeobjectCompress()

template<class BufferFactory>
std::pair< void const *, std::size_t > xrpl::NodeStore::nodeobjectCompress ( void const * in,
std::size_t inSize,
BufferFactory && bf )

Definition at line 197 of file codec.h.

◆ filterInner()

template<class = void>
void xrpl::NodeStore::filterInner ( void * in,
std::size_t inSize )

Definition at line 289 of file codec.h.

◆ readVarint()

template<class = void>
std::size_t xrpl::NodeStore::readVarint ( void const * buf,
std::size_t buflen,
std::size_t & t )

Definition at line 36 of file varint.h.

◆ sizeVarint()

template<class T, std::enable_if_t< std::is_unsigned_v< T > > * = nullptr>
std::size_t xrpl::NodeStore::sizeVarint ( T v)

Definition at line 72 of file varint.h.

◆ writeVarint()

template<class = void>
std::size_t xrpl::NodeStore::writeVarint ( void * p0,
std::size_t v )

Definition at line 85 of file varint.h.

◆ read()

template<class T, std::enable_if_t< std::is_same_v< T, varint > > * = nullptr>
void xrpl::NodeStore::read ( nudb::detail::istream & is,
std::size_t & u )

Definition at line 104 of file varint.h.

◆ write()

template<class T, std::enable_if_t< std::is_same_v< T, varint > > * = nullptr>
void xrpl::NodeStore::write ( nudb::detail::ostream & os,
std::size_t t )

Definition at line 117 of file varint.h.

◆ registerMemoryFactory()

void xrpl::NodeStore::registerMemoryFactory ( Manager & manager)

Definition at line 75 of file MemoryFactory.cpp.

◆ registerNuDBFactory()

void xrpl::NodeStore::registerNuDBFactory ( Manager & manager)

Definition at line 439 of file NuDBFactory.cpp.

◆ registerNullFactory()

void xrpl::NodeStore::registerNullFactory ( Manager & manager)

Definition at line 121 of file NullFactory.cpp.

◆ BEAST_DEFINE_TESTSUITE() [1/4]

xrpl::NodeStore::BEAST_DEFINE_TESTSUITE ( Backend ,
nodestore ,
xrpl  )

◆ BEAST_DEFINE_TESTSUITE() [2/4]

xrpl::NodeStore::BEAST_DEFINE_TESTSUITE ( NodeStoreBasic ,
nodestore ,
xrpl  )

◆ BEAST_DEFINE_TESTSUITE() [3/4]

xrpl::NodeStore::BEAST_DEFINE_TESTSUITE ( Database ,
nodestore ,
xrpl  )

◆ parseArgs()

std::map< std::string, std::string, boost::beast::iless > xrpl::NodeStore::parseArgs ( std::string const & s)

Definition at line 258 of file import_test.cpp.

◆ BEAST_DEFINE_TESTSUITE() [4/4]

xrpl::NodeStore::BEAST_DEFINE_TESTSUITE ( NuDBFactory ,
xrpl_core ,
xrpl  )

◆ isSame()

bool xrpl::NodeStore::isSame ( std::shared_ptr< NodeObject > const & lhs,
std::shared_ptr< NodeObject > const & rhs )

Returns true if objects are identical.

Definition at line 37 of file TestBase.h.

◆ makeBackend()

std::unique_ptr< Backend > xrpl::NodeStore::makeBackend ( Section const & config,
Scheduler & scheduler,
beast::Journal journal )

Definition at line 50 of file Timing_test.cpp.

◆ rngcpy()

template<class Generator>
void xrpl::NodeStore::rngcpy ( void * buffer,
std::size_t bytes,
Generator & g )
static

Definition at line 58 of file Timing_test.cpp.

◆ BEAST_DEFINE_TESTSUITE_MANUAL_PRIO()

xrpl::NodeStore::BEAST_DEFINE_TESTSUITE_MANUAL_PRIO ( Timing ,
nodestore ,
xrpl ,
1  )

Variable Documentation

◆ kBatchWritePreallocationSize

auto xrpl::NodeStore::kBatchWritePreallocationSize = 256
staticconstexpr

Definition at line 12 of file nodestore/Types.h.

◆ kBatchWriteLimitSize

auto xrpl::NodeStore::kBatchWriteLimitSize = 65536
staticconstexpr

Definition at line 18 of file nodestore/Types.h.

◆ gMemoryFactory

MemoryFactory* xrpl::NodeStore::gMemoryFactory = nullptr

Definition at line 72 of file MemoryFactory.cpp.