|
xrpld
|


Public Member Functions | |
| LedgerCleanerImp (Application &app, beast::Journal journal) | |
| ~LedgerCleanerImp () override | |
| void | start () override |
| void | stop () override |
| void | onWrite (beast::PropertyStream::Map &map) override |
| Subclass override. | |
| void | clean (json::Value const ¶ms) override |
| Start a long running task to clean the ledger. | |
| std::string const & | name () const |
| Returns the name of this source. | |
| void | add (Source &source) |
| Add a child source. | |
| template<class Derived> | |
| Derived * | add (Derived *child) |
| Add a child source by pointer. | |
| void | remove (Source &child) |
| Remove a child source from this Source. | |
| void | removeAll () |
| Remove all child sources from this Source. | |
| void | writeOne (PropertyStream &stream) |
| Write only this Source to the stream. | |
| void | write (PropertyStream &stream) |
| write this source and all its children recursively to the stream. | |
| void | write (PropertyStream &stream, std::string const &path) |
| Parse the path and write the corresponding Source and optional children. | |
| std::pair< Source *, bool > | find (std::string path) |
| Parse the dot-delimited Source path and return the result. | |
| Source * | findOneDeep (std::string const &name) |
| PropertyStream::Source * | findPath (std::string path) |
| PropertyStream::Source * | findOne (std::string const &name) |
Static Public Member Functions | |
| static bool | peelLeadingSlash (std::string *path) |
| static bool | peelTrailingSlashstar (std::string *path) |
| static std::string | peelName (std::string *path) |
Private Types | |
| enum class | State : char { NotCleaning = 0 , Cleaning } |
Private Member Functions | |
| void | run () |
| LedgerHash | getLedgerHash (std::shared_ptr< ReadView const > &ledger, LedgerIndex index) |
| bool | doLedger (LedgerIndex const &ledgerIndex, LedgerHash const &ledgerHash, bool doNodes, bool doTxns) |
| Process a single ledger. | |
| LedgerHash | getHash (LedgerIndex const &ledgerIndex, std::shared_ptr< ReadView const > &referenceLedger) |
| Returns the hash of the specified ledger. | |
| void | doLedgerCleaner () |
| Run the ledger cleaner. | |
Private Attributes | |
| Application & | app_ |
| beast::Journal const | j_ |
| std::mutex | mutex_ |
| std::condition_variable | wakeup_ |
| std::thread | thread_ |
| State | state_ = State::NotCleaning |
| bool | shouldExit_ = false |
| LedgerIndex | minRange_ = 0 |
| LedgerIndex | maxRange_ = 0 |
| bool | checkNodes_ = false |
| bool | fixTxns_ = false |
| int | failures_ = 0 |
| std::string const | name_ |
| std::recursive_mutex | lock_ |
| Item | item_ |
| Source * | parent_ {nullptr} |
| List< Item > | children_ |
Definition at line 49 of file app/ledger/detail/LedgerCleaner.cpp.
|
strongprivate |
| Enumerator | |
|---|---|
| NotCleaning | |
| Cleaning | |
Definition at line 59 of file app/ledger/detail/LedgerCleaner.cpp.
| xrpl::LedgerCleanerImp::LedgerCleanerImp | ( | Application & | app, |
| beast::Journal | journal ) |
Definition at line 80 of file app/ledger/detail/LedgerCleaner.cpp.
|
override |
Definition at line 84 of file app/ledger/detail/LedgerCleaner.cpp.
|
overridevirtual |
Implements xrpl::LedgerCleaner.
Definition at line 91 of file app/ledger/detail/LedgerCleaner.cpp.
|
overridevirtual |
Implements xrpl::LedgerCleaner.
Definition at line 97 of file app/ledger/detail/LedgerCleaner.cpp.
|
overridevirtual |
Subclass override.
The default version does nothing.
Reimplemented from beast::PropertyStream::Source.
Definition at line 115 of file app/ledger/detail/LedgerCleaner.cpp.
|
overridevirtual |
Start a long running task to clean the ledger.
The ledger is cleaned asynchronously, on an implementation defined thread. This function call does not block. The long running task will be stopped by a call to stop().
Thread safety: Safe to call from any thread at any time.
| parameters | A Json object with configurable parameters. |
Implements xrpl::LedgerCleaner.
Definition at line 142 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Definition at line 226 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Definition at line 247 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Process a single ledger.
| ledgerIndex | The index of the ledger to process. |
| ledgerHash | The known correct hash of the ledger. |
| doNodes | Ensure all ledger nodes are in the node db. |
| doTxns | Reprocess (account) transactions to SQL databases. |
Definition at line 272 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Returns the hash of the specified ledger.
| ledgerIndex | The index of the desired ledger. |
| referenceLedger | [out] An optional known good subsequent ledger. |
Definition at line 331 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Run the ledger cleaner.
Definition at line 382 of file app/ledger/detail/LedgerCleaner.cpp.
|
nodiscardinherited |
Returns the name of this source.
Definition at line 168 of file beast_PropertyStream.cpp.
|
inherited |
Add a child source.
Definition at line 174 of file beast_PropertyStream.cpp.
|
inherited |
Add a child source by pointer.
The source pointer is returned so it can be used in ctor-initializers.
Definition at line 349 of file PropertyStream.h.
|
inherited |
Remove a child source from this Source.
Definition at line 185 of file beast_PropertyStream.cpp.
|
inherited |
Remove all child sources from this Source.
Definition at line 196 of file beast_PropertyStream.cpp.
|
inherited |
Write only this Source to the stream.
Definition at line 209 of file beast_PropertyStream.cpp.
|
inherited |
write this source and all its children recursively to the stream.
Definition at line 216 of file beast_PropertyStream.cpp.
|
inherited |
Parse the path and write the corresponding Source and optional children.
If the source is found, it is written. If the wildcard character '*' exists as the last character in the path, then all the children are written recursively.
Definition at line 228 of file beast_PropertyStream.cpp.
|
inherited |
Parse the dot-delimited Source path and return the result.
The first value will be a pointer to the Source object corresponding to the given path. If no Source object exists, then the first value will be nullptr and the second value will be undefined. The second value is a boolean indicating whether or not the path string specifies the wildcard character '*' as the last character.
print statement examples "parent.child" prints child and all of its children "parent.child." start at the parent and print down to child "parent.grandchild" prints nothing- grandchild not direct descendent "parent.grandchild." starts at the parent and prints down to grandchild "parent.grandchild.*" starts at parent, print through grandchild children
Definition at line 246 of file beast_PropertyStream.cpp.
|
inherited |
Definition at line 317 of file beast_PropertyStream.cpp.
|
inherited |
Definition at line 334 of file beast_PropertyStream.cpp.
|
inherited |
Definition at line 352 of file beast_PropertyStream.cpp.
|
staticinherited |
Definition at line 266 of file beast_PropertyStream.cpp.
|
staticinherited |
Definition at line 277 of file beast_PropertyStream.cpp.
|
staticinherited |
Definition at line 293 of file beast_PropertyStream.cpp.
|
private |
Definition at line 51 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Definition at line 52 of file app/ledger/detail/LedgerCleaner.cpp.
|
mutableprivate |
Definition at line 53 of file app/ledger/detail/LedgerCleaner.cpp.
|
mutableprivate |
Definition at line 55 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Definition at line 57 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Definition at line 60 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Definition at line 61 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Definition at line 64 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Definition at line 67 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Definition at line 70 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Definition at line 73 of file app/ledger/detail/LedgerCleaner.cpp.
|
private |
Definition at line 76 of file app/ledger/detail/LedgerCleaner.cpp.
|
privateinherited |
Definition at line 317 of file PropertyStream.h.
|
privateinherited |
Definition at line 318 of file PropertyStream.h.
|
privateinherited |
Definition at line 319 of file PropertyStream.h.
|
privateinherited |
Definition at line 320 of file PropertyStream.h.
|
privateinherited |
Definition at line 321 of file PropertyStream.h.