Files
rippled/include/xrpl/shamap/Family.h
Bart 34ef577604 refactor: Replace include guards by '#pragma once' (#6322)
This change replaces all include guards in the `src/` and `include/` directories by `#pragma once`.
2026-02-04 09:50:21 -05:00

68 lines
1.5 KiB
C++

#pragma once
#include <xrpl/beast/utility/Journal.h>
#include <xrpl/nodestore/Database.h>
#include <xrpl/shamap/FullBelowCache.h>
#include <xrpl/shamap/TreeNodeCache.h>
#include <cstdint>
namespace xrpl {
class Family
{
public:
Family(Family const&) = delete;
Family(Family&&) = delete;
Family&
operator=(Family const&) = delete;
Family&
operator=(Family&&) = delete;
explicit Family() = default;
virtual ~Family() = default;
virtual NodeStore::Database&
db() = 0;
virtual NodeStore::Database const&
db() const = 0;
virtual beast::Journal const&
journal() = 0;
/** Return a pointer to the Family Full Below Cache */
virtual std::shared_ptr<FullBelowCache>
getFullBelowCache() = 0;
/** Return a pointer to the Family Tree Node Cache */
virtual std::shared_ptr<TreeNodeCache>
getTreeNodeCache() = 0;
virtual void
sweep() = 0;
/** Acquire ledger that has a missing node by ledger sequence
*
* @param refNum Sequence of ledger to acquire.
* @param nodeHash Hash of missing node to report in throw.
*/
virtual void
missingNodeAcquireBySeq(std::uint32_t refNum, uint256 const& nodeHash) = 0;
/** Acquire ledger that has a missing node by ledger hash
*
* @param refHash Hash of ledger to acquire.
* @param refNum Ledger sequence with missing node.
*/
virtual void
missingNodeAcquireByHash(uint256 const& refHash, std::uint32_t refNum) = 0;
virtual void
reset() = 0;
};
} // namespace xrpl