rippled
|
Classes | |
class | TaskParameter |
Public Member Functions | |
LedgerReplayTask (Application &app, InboundLedgers &inboundLedgers, LedgerReplayer &replayer, std::shared_ptr< SkipListAcquire > &skipListAcquirer, TaskParameter &¶meter) | |
Constructor. More... | |
~LedgerReplayTask () | |
void | init () |
Start the task. More... | |
void | addDelta (std::shared_ptr< LedgerDeltaAcquire > const &delta) |
add a new LedgerDeltaAcquire subtask More... | |
TaskParameter const & | getTaskParameter () const |
bool | finished () const |
return if the task is finished More... | |
virtual void | cancel () |
Cancel the task by marking it as failed if the task is not done. More... | |
T | shared_from_this (T... args) |
T | weak_from_this (T... args) |
Protected Types | |
using | ScopedLockType = std::unique_lock< std::recursive_mutex > |
Protected Member Functions | |
void | setTimer (ScopedLockType &) |
Schedule a call to queueJob() after mTimerInterval. More... | |
void | queueJob (ScopedLockType &) |
Queue a job to call invokeOnTimer(). More... | |
bool | isDone () const |
Protected Attributes | |
Application & | app_ |
beast::Journal | journal_ |
std::recursive_mutex | mtx_ |
const uint256 | hash_ |
The hash of the object (in practice, always a ledger) we are trying to fetch. More... | |
int | timeouts_ |
bool | complete_ |
bool | failed_ |
bool | progress_ |
Whether forward progress has been made. More... | |
std::chrono::milliseconds | timerInterval_ |
The minimum time to wait between calls to execute(). More... | |
QueueJobParameter | queueJobParameter_ |
Private Member Functions | |
void | onTimer (bool progress, ScopedLockType &sl) override |
Hook called from invokeOnTimer(). More... | |
std::weak_ptr< TimeoutCounter > | pmDowncast () override |
Return a weak pointer to this. More... | |
void | updateSkipList (uint256 const &hash, std::uint32_t seq, std::vector< uint256 > const &sList) |
Update this task (by a SkipListAcquire subtask) when skip list is ready. More... | |
void | deltaReady (uint256 const &deltaHash) |
Notify this task (by a LedgerDeltaAcquire subtask) that a delta is ready. More... | |
void | trigger (ScopedLockType &sl) |
Trigger another round. More... | |
void | tryAdvance (ScopedLockType &sl) |
Try to build more ledgers. More... | |
void | invokeOnTimer () |
Calls onTimer() if in the right state. More... | |
Static Private Member Functions | |
static auto & | getCounter () noexcept |
Private Attributes | |
InboundLedgers & | inboundLedgers_ |
LedgerReplayer & | replayer_ |
TaskParameter | parameter_ |
uint32_t | maxTimeouts_ |
std::shared_ptr< SkipListAcquire > | skipListAcquirer_ |
std::shared_ptr< Ledger const > | parent_ = {} |
uint32_t | deltaToBuild_ = 0 |
std::vector< std::shared_ptr< LedgerDeltaAcquire > > | deltas_ |
boost::asio::basic_waitable_timer< std::chrono::steady_clock > | timer_ |
Friends | |
class | test::LedgerReplayClient |
Definition at line 40 of file LedgerReplayTask.h.
|
protectedinherited |
Definition at line 81 of file TimeoutCounter.h.
ripple::LedgerReplayTask::LedgerReplayTask | ( | Application & | app, |
InboundLedgers & | inboundLedgers, | ||
LedgerReplayer & | replayer, | ||
std::shared_ptr< SkipListAcquire > & | skipListAcquirer, | ||
TaskParameter && | parameter | ||
) |
Constructor.
app | Application reference |
inboundLedgers | InboundLedgers reference |
replayer | LedgerReplayer reference |
skipListAcquirer | shared_ptr of SkipListAcquire subtask, to make sure it will not be destroyed. |
parameter | parameter of the task |
Definition at line 84 of file LedgerReplayTask.cpp.
ripple::LedgerReplayTask::~LedgerReplayTask | ( | ) |
Definition at line 110 of file LedgerReplayTask.cpp.
void ripple::LedgerReplayTask::init | ( | ) |
Start the task.
Definition at line 116 of file LedgerReplayTask.cpp.
void ripple::LedgerReplayTask::addDelta | ( | std::shared_ptr< LedgerDeltaAcquire > const & | delta | ) |
add a new LedgerDeltaAcquire subtask
delta | the new LedgerDeltaAcquire subtask |
Definition at line 272 of file LedgerReplayTask.cpp.
TaskParameter const& ripple::LedgerReplayTask::getTaskParameter | ( | ) | const |
Definition at line 123 of file LedgerReplayTask.h.
bool ripple::LedgerReplayTask::finished | ( | ) | const |
return if the task is finished
Definition at line 300 of file LedgerReplayTask.cpp.
|
overrideprivatevirtual |
Hook called from invokeOnTimer().
Implements ripple::TimeoutCounter.
Definition at line 250 of file LedgerReplayTask.cpp.
|
overrideprivatevirtual |
Return a weak pointer to this.
Implements ripple::TimeoutCounter.
Definition at line 266 of file LedgerReplayTask.cpp.
|
private |
Update this task (by a SkipListAcquire subtask) when skip list is ready.
hash | hash of the ledger that has the skip list |
seq | sequence number of the ledger that has the skip list |
sList | skip list |
Definition at line 226 of file LedgerReplayTask.cpp.
|
private |
Notify this task (by a LedgerDeltaAcquire subtask) that a delta is ready.
deltaHash | ledger hash of the delta |
Definition at line 174 of file LedgerReplayTask.cpp.
|
private |
Trigger another round.
sl | lock. this function must be called with the lock |
Definition at line 146 of file LedgerReplayTask.cpp.
|
private |
Try to build more ledgers.
sl | lock. this function must be called with the lock |
Definition at line 184 of file LedgerReplayTask.cpp.
|
virtualinherited |
Cancel the task by marking it as failed if the task is not done.
Definition at line 118 of file TimeoutCounter.cpp.
|
protectedinherited |
Schedule a call to queueJob() after mTimerInterval.
Definition at line 50 of file TimeoutCounter.cpp.
|
protectedinherited |
Queue a job to call invokeOnTimer().
Definition at line 69 of file TimeoutCounter.cpp.
|
protectedinherited |
Definition at line 116 of file TimeoutCounter.h.
|
privateinherited |
Calls onTimer() if in the right state.
Only called by queueJob().
Definition at line 93 of file TimeoutCounter.cpp.
|
staticprivatenoexceptinherited |
Definition at line 128 of file CountedObject.h.
|
friend |
Definition at line 181 of file LedgerReplayTask.h.
|
private |
Definition at line 172 of file LedgerReplayTask.h.
|
private |
Definition at line 173 of file LedgerReplayTask.h.
|
private |
Definition at line 174 of file LedgerReplayTask.h.
|
private |
Definition at line 175 of file LedgerReplayTask.h.
|
private |
Definition at line 176 of file LedgerReplayTask.h.
|
private |
Definition at line 177 of file LedgerReplayTask.h.
|
private |
Definition at line 178 of file LedgerReplayTask.h.
|
private |
Definition at line 179 of file LedgerReplayTask.h.
|
protectedinherited |
Definition at line 123 of file TimeoutCounter.h.
|
protectedinherited |
Definition at line 124 of file TimeoutCounter.h.
|
mutableprotectedinherited |
Definition at line 125 of file TimeoutCounter.h.
|
protectedinherited |
The hash of the object (in practice, always a ledger) we are trying to fetch.
Definition at line 129 of file TimeoutCounter.h.
|
protectedinherited |
Definition at line 130 of file TimeoutCounter.h.
|
protectedinherited |
Definition at line 131 of file TimeoutCounter.h.
|
protectedinherited |
Definition at line 132 of file TimeoutCounter.h.
|
protectedinherited |
Whether forward progress has been made.
Definition at line 134 of file TimeoutCounter.h.
|
protectedinherited |
The minimum time to wait between calls to execute().
Definition at line 136 of file TimeoutCounter.h.
|
protectedinherited |
Definition at line 138 of file TimeoutCounter.h.
|
privateinherited |
Definition at line 147 of file TimeoutCounter.h.