rippled
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
ripple::TransactionAcquire Class Referencefinal

#include <TransactionAcquire.h>

Inheritance diagram for ripple::TransactionAcquire:
Inheritance graph
[legend]
Collaboration diagram for ripple::TransactionAcquire:
Collaboration graph
[legend]

Public Types

using pointer = std::shared_ptr< TransactionAcquire >
 

Public Member Functions

 TransactionAcquire (Application &app, uint256 const &hash, std::unique_ptr< PeerSet > peerSet)
 
 ~TransactionAcquire ()=default
 
SHAMapAddNode takeNodes (std::vector< std::pair< SHAMapNodeID, Slice > > const &data, std::shared_ptr< Peer > const &)
 
void init (int startPeers)
 
void stillNeed ()
 
virtual void cancel ()
 Cancel the task by marking it as failed if the task is not done.
 
shared_from_this (T... args)
 
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.
 
void queueJob (ScopedLockType &)
 Queue a job to call invokeOnTimer().
 
bool isDone () const
 

Protected Attributes

Applicationapp_
 
beast::Journal journal_
 
std::recursive_mutex mtx_
 
uint256 const hash_
 The hash of the object (in practice, always a ledger) we are trying to fetch.
 
int timeouts_
 
bool complete_
 
bool failed_
 
bool progress_
 Whether forward progress has been made.
 
std::chrono::milliseconds timerInterval_
 The minimum time to wait between calls to execute().
 
QueueJobParameter queueJobParameter_
 

Private Member Functions

void onTimer (bool progress, ScopedLockType &peerSetLock) override
 Hook called from invokeOnTimer().
 
void done ()
 
void addPeers (std::size_t limit)
 
void trigger (std::shared_ptr< Peer > const &)
 
std::weak_ptr< TimeoutCounterpmDowncast () override
 Return a weak pointer to this.
 
void invokeOnTimer ()
 Calls onTimer() if in the right state.
 

Static Private Member Functions

static auto & getCounter () noexcept
 

Private Attributes

std::shared_ptr< SHAMapmMap
 
bool mHaveRoot
 
std::unique_ptr< PeerSetmPeerSet
 
boost::asio::basic_waitable_timer< std::chrono::steady_clocktimer_
 

Detailed Description

Definition at line 31 of file TransactionAcquire.h.

Member Typedef Documentation

◆ pointer

Definition at line 37 of file TransactionAcquire.h.

◆ ScopedLockType

Definition at line 83 of file TimeoutCounter.h.

Constructor & Destructor Documentation

◆ TransactionAcquire()

ripple::TransactionAcquire::TransactionAcquire ( Application app,
uint256 const &  hash,
std::unique_ptr< PeerSet peerSet 
)

Definition at line 41 of file TransactionAcquire.cpp.

◆ ~TransactionAcquire()

ripple::TransactionAcquire::~TransactionAcquire ( )
default

Member Function Documentation

◆ takeNodes()

SHAMapAddNode ripple::TransactionAcquire::takeNodes ( std::vector< std::pair< SHAMapNodeID, Slice > > const &  data,
std::shared_ptr< Peer > const &  peer 
)

Definition at line 176 of file TransactionAcquire.cpp.

◆ init()

void ripple::TransactionAcquire::init ( int  startPeers)

Definition at line 247 of file TransactionAcquire.cpp.

◆ stillNeed()

void ripple::TransactionAcquire::stillNeed ( )

Definition at line 257 of file TransactionAcquire.cpp.

◆ onTimer()

void ripple::TransactionAcquire::onTimer ( bool  progress,
ScopedLockType  
)
overrideprivatevirtual

Hook called from invokeOnTimer().

Implements ripple::TimeoutCounter.

Definition at line 89 of file TransactionAcquire.cpp.

◆ done()

void ripple::TransactionAcquire::done ( )
private

Definition at line 60 of file TransactionAcquire.cpp.

◆ addPeers()

void ripple::TransactionAcquire::addPeers ( std::size_t  limit)
private

Definition at line 238 of file TransactionAcquire.cpp.

◆ trigger()

void ripple::TransactionAcquire::trigger ( std::shared_ptr< Peer > const &  peer)
private

Definition at line 111 of file TransactionAcquire.cpp.

◆ pmDowncast()

std::weak_ptr< TimeoutCounter > ripple::TransactionAcquire::pmDowncast ( )
overrideprivatevirtual

Return a weak pointer to this.

Implements ripple::TimeoutCounter.

Definition at line 105 of file TransactionAcquire.cpp.

◆ cancel()

void ripple::TimeoutCounter::cancel ( )
virtualinherited

Cancel the task by marking it as failed if the task is not done.

Note
this function does not attempt to cancel the scheduled timer or to remove the queued job if any. When the timer expires or the queued job starts, however, the code will see that the task is done and returns immediately, if it can lock the weak pointer of the task.

Definition at line 118 of file TimeoutCounter.cpp.

◆ setTimer()

void ripple::TimeoutCounter::setTimer ( ScopedLockType sl)
protectedinherited

Schedule a call to queueJob() after mTimerInterval.

Definition at line 50 of file TimeoutCounter.cpp.

◆ queueJob()

void ripple::TimeoutCounter::queueJob ( ScopedLockType sl)
protectedinherited

Queue a job to call invokeOnTimer().

Definition at line 69 of file TimeoutCounter.cpp.

◆ isDone()

bool ripple::TimeoutCounter::isDone ( ) const
protectedinherited

Definition at line 118 of file TimeoutCounter.h.

◆ invokeOnTimer()

void ripple::TimeoutCounter::invokeOnTimer ( )
privateinherited

Calls onTimer() if in the right state.

Only called by queueJob().

Definition at line 93 of file TimeoutCounter.cpp.

◆ getCounter()

static auto & ripple::CountedObject< TransactionAcquire >::getCounter ( )
staticprivatenoexceptinherited

Definition at line 129 of file CountedObject.h.

Member Data Documentation

◆ mMap

std::shared_ptr<SHAMap> ripple::TransactionAcquire::mMap
private

Definition at line 57 of file TransactionAcquire.h.

◆ mHaveRoot

bool ripple::TransactionAcquire::mHaveRoot
private

Definition at line 58 of file TransactionAcquire.h.

◆ mPeerSet

std::unique_ptr<PeerSet> ripple::TransactionAcquire::mPeerSet
private

Definition at line 59 of file TransactionAcquire.h.

◆ app_

Application& ripple::TimeoutCounter::app_
protectedinherited

Definition at line 125 of file TimeoutCounter.h.

◆ journal_

beast::Journal ripple::TimeoutCounter::journal_
protectedinherited

Definition at line 126 of file TimeoutCounter.h.

◆ mtx_

std::recursive_mutex ripple::TimeoutCounter::mtx_
mutableprotectedinherited

Definition at line 127 of file TimeoutCounter.h.

◆ hash_

uint256 const ripple::TimeoutCounter::hash_
protectedinherited

The hash of the object (in practice, always a ledger) we are trying to fetch.

Definition at line 131 of file TimeoutCounter.h.

◆ timeouts_

int ripple::TimeoutCounter::timeouts_
protectedinherited

Definition at line 132 of file TimeoutCounter.h.

◆ complete_

bool ripple::TimeoutCounter::complete_
protectedinherited

Definition at line 133 of file TimeoutCounter.h.

◆ failed_

bool ripple::TimeoutCounter::failed_
protectedinherited

Definition at line 134 of file TimeoutCounter.h.

◆ progress_

bool ripple::TimeoutCounter::progress_
protectedinherited

Whether forward progress has been made.

Definition at line 136 of file TimeoutCounter.h.

◆ timerInterval_

std::chrono::milliseconds ripple::TimeoutCounter::timerInterval_
protectedinherited

The minimum time to wait between calls to execute().

Definition at line 138 of file TimeoutCounter.h.

◆ queueJobParameter_

QueueJobParameter ripple::TimeoutCounter::queueJobParameter_
protectedinherited

Definition at line 140 of file TimeoutCounter.h.

◆ timer_

boost::asio::basic_waitable_timer<std::chrono::steady_clock> ripple::TimeoutCounter::timer_
privateinherited

Definition at line 149 of file TimeoutCounter.h.