rippled
Public Types | Public Member Functions | Static 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 Reference
Inheritance diagram for ripple::TransactionAcquire:
Inheritance graph
[legend]
Collaboration diagram for ripple::TransactionAcquire:
Collaboration graph
[legend]

Public Types

using pointer = std::shared_ptr< TransactionAcquire >
 
using clock_type = beast::abstract_clock< std::chrono::steady_clock >
 

Public Member Functions

 TransactionAcquire (Application &app, uint256 const &hash, clock_type &clock)
 
 ~TransactionAcquire ()=default
 
std::shared_ptr< SHAMap > const & getMap ()
 
SHAMapAddNode takeNodes (const std::list< SHAMapNodeID > &IDs, const std::list< Blob > &data, std::shared_ptr< Peer > const &)
 
void init (int startPeers)
 
void stillNeed ()
 
uint256 const & getHash () const
 Returns the hash of the data we want. More...
 
bool isComplete () const
 Returns true if we got all the data. More...
 
bool isFailed () const
 Returns false if we failed to get the data. More...
 
int getTimeouts () const
 Returns the number of times we timed out. More...
 
bool isActive ()
 
void progress ()
 Called to indicate that forward progress has been made. More...
 
void touch ()
 
clock_type::time_point getLastAction () const
 
bool insert (std::shared_ptr< Peer > const &)
 Insert a peer to the managed set. More...
 
virtual bool isDone () const
 
Applicationapp ()
 
shared_from_this (T... args)
 
weak_from_this (T... args)
 

Static Public Member Functions

static char const * getCountedObjectName ()
 

Protected Types

using ScopedLockType = std::unique_lock< std::recursive_mutex >
 

Protected Member Functions

bool isProgress ()
 
void setComplete ()
 
void setFailed ()
 
void invokeOnTimer ()
 
void sendRequest (const protocol::TMGetLedger &message)
 
void sendRequest (const protocol::TMGetLedger &message, std::shared_ptr< Peer > const &peer)
 
void setTimer ()
 
std::size_t getPeerCount () const
 

Protected Attributes

Applicationapp_
 
beast::Journal m_journal
 
clock_typem_clock
 
std::recursive_mutex mLock
 
uint256 mHash
 
std::chrono::milliseconds mTimerInterval
 
int mTimeouts
 
bool mComplete
 
bool mFailed
 
clock_type::time_point mLastAction
 
bool mProgress
 
boost::asio::basic_waitable_timer< std::chrono::steady_clockmTimer
 
std::set< Peer::id_tmPeers
 

Private Member Functions

void execute () override
 
void onTimer (bool progress, ScopedLockType &peerSetLock) override
 
void newPeer (std::shared_ptr< Peer > const &peer) override
 
void done ()
 
void addPeers (int num)
 
void trigger (std::shared_ptr< Peer > const &)
 
std::weak_ptr< PeerSetpmDowncast () override
 

Static Private Member Functions

static Counter & getCounter () noexcept
 

Private Attributes

std::shared_ptr< SHAMapmMap
 
bool mHaveRoot
 
beast::Journal j_
 

Detailed Description

Definition at line 31 of file TransactionAcquire.h.

Member Typedef Documentation

◆ pointer

Definition at line 39 of file TransactionAcquire.h.

◆ clock_type

Definition at line 51 of file PeerSet.h.

◆ ScopedLockType

Definition at line 113 of file PeerSet.h.

Constructor & Destructor Documentation

◆ TransactionAcquire()

ripple::TransactionAcquire::TransactionAcquire ( Application app,
uint256 const &  hash,
clock_type clock 
)

Definition at line 43 of file TransactionAcquire.cpp.

◆ ~TransactionAcquire()

ripple::TransactionAcquire::~TransactionAcquire ( )
default

Member Function Documentation

◆ getCountedObjectName()

static char const* ripple::TransactionAcquire::getCountedObjectName ( )
static

Definition at line 37 of file TransactionAcquire.h.

◆ getMap()

std::shared_ptr<SHAMap> const& ripple::TransactionAcquire::getMap ( )

Definition at line 45 of file TransactionAcquire.h.

◆ takeNodes()

SHAMapAddNode ripple::TransactionAcquire::takeNodes ( const std::list< SHAMapNodeID > &  IDs,
const std::list< Blob > &  data,
std::shared_ptr< Peer > const &  peer 
)

Definition at line 185 of file TransactionAcquire.cpp.

◆ init()

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

Definition at line 251 of file TransactionAcquire.cpp.

◆ stillNeed()

void ripple::TransactionAcquire::stillNeed ( )

Definition at line 260 of file TransactionAcquire.cpp.

◆ execute()

void ripple::TransactionAcquire::execute ( )
overrideprivatevirtual

Implements ripple::PeerSet.

Definition at line 54 of file TransactionAcquire.cpp.

◆ onTimer()

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

Implements ripple::PeerSet.

Definition at line 95 of file TransactionAcquire.cpp.

◆ newPeer()

void ripple::TransactionAcquire::newPeer ( std::shared_ptr< Peer > const &  peer)
overrideprivatevirtual

Implements ripple::PeerSet.

Definition at line 68 of file TransactionAcquire.h.

◆ done()

void ripple::TransactionAcquire::done ( )
private

Definition at line 64 of file TransactionAcquire.cpp.

◆ addPeers()

void ripple::TransactionAcquire::addPeers ( int  num)
private

Definition at line 246 of file TransactionAcquire.cpp.

◆ trigger()

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

Definition at line 122 of file TransactionAcquire.cpp.

◆ pmDowncast()

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

Implements ripple::PeerSet.

Definition at line 117 of file TransactionAcquire.cpp.

◆ getHash()

uint256 const& ripple::PeerSet::getHash ( ) const
inherited

Returns the hash of the data we want.

Definition at line 54 of file PeerSet.h.

◆ isComplete()

bool ripple::PeerSet::isComplete ( ) const
inherited

Returns true if we got all the data.

Definition at line 60 of file PeerSet.h.

◆ isFailed()

bool ripple::PeerSet::isFailed ( ) const
inherited

Returns false if we failed to get the data.

Definition at line 66 of file PeerSet.h.

◆ getTimeouts()

int ripple::PeerSet::getTimeouts ( ) const
inherited

Returns the number of times we timed out.

Definition at line 72 of file PeerSet.h.

◆ isActive()

bool ripple::PeerSet::isActive ( )
inherited

Definition at line 107 of file PeerSet.cpp.

◆ progress()

void ripple::PeerSet::progress ( )
inherited

Called to indicate that forward progress has been made.

Definition at line 80 of file PeerSet.h.

◆ touch()

void ripple::PeerSet::touch ( )
inherited

Definition at line 85 of file PeerSet.h.

◆ getLastAction()

clock_type::time_point ripple::PeerSet::getLastAction ( ) const
inherited

Definition at line 90 of file PeerSet.h.

◆ insert()

bool ripple::PeerSet::insert ( std::shared_ptr< Peer > const &  ptr)
inherited

Insert a peer to the managed set.

This will call the derived class hook function.

Returns
true If the peer was added

Definition at line 58 of file PeerSet.cpp.

◆ isDone()

virtual bool ripple::PeerSet::isDone ( ) const
virtualinherited

Definition at line 101 of file PeerSet.h.

◆ app()

Application& ripple::PeerSet::app ( )
inherited

Definition at line 107 of file PeerSet.h.

◆ isProgress()

bool ripple::PeerSet::isProgress ( )
protectedinherited

Definition at line 128 of file PeerSet.h.

◆ setComplete()

void ripple::PeerSet::setComplete ( )
protectedinherited

Definition at line 133 of file PeerSet.h.

◆ setFailed()

void ripple::PeerSet::setFailed ( )
protectedinherited

Definition at line 137 of file PeerSet.h.

◆ invokeOnTimer()

void ripple::PeerSet::invokeOnTimer ( )
protectedinherited

Definition at line 83 of file PeerSet.cpp.

◆ sendRequest() [1/2]

void ripple::PeerSet::sendRequest ( const protocol::TMGetLedger &  message)
protectedinherited

Definition at line 121 of file PeerSet.cpp.

◆ sendRequest() [2/2]

void ripple::PeerSet::sendRequest ( const protocol::TMGetLedger &  message,
std::shared_ptr< Peer > const &  peer 
)
protectedinherited

Definition at line 113 of file PeerSet.cpp.

◆ setTimer()

void ripple::PeerSet::setTimer ( )
protectedinherited

Definition at line 69 of file PeerSet.cpp.

◆ getPeerCount()

std::size_t ripple::PeerSet::getPeerCount ( ) const
protectedinherited

Definition at line 137 of file PeerSet.cpp.

◆ getCounter()

static Counter& ripple::CountedObject< TransactionAcquire >::getCounter
staticprivatenoexceptinherited

Definition at line 137 of file CountedObject.h.

Member Data Documentation

◆ mMap

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

Definition at line 59 of file TransactionAcquire.h.

◆ mHaveRoot

bool ripple::TransactionAcquire::mHaveRoot
private

Definition at line 60 of file TransactionAcquire.h.

◆ j_

beast::Journal ripple::TransactionAcquire::j_
private

Definition at line 61 of file TransactionAcquire.h.

◆ app_

Application& ripple::PeerSet::app_
protectedinherited

Definition at line 153 of file PeerSet.h.

◆ m_journal

beast::Journal ripple::PeerSet::m_journal
protectedinherited

Definition at line 154 of file PeerSet.h.

◆ m_clock

clock_type& ripple::PeerSet::m_clock
protectedinherited

Definition at line 155 of file PeerSet.h.

◆ mLock

std::recursive_mutex ripple::PeerSet::mLock
protectedinherited

Definition at line 157 of file PeerSet.h.

◆ mHash

uint256 ripple::PeerSet::mHash
protectedinherited

Definition at line 159 of file PeerSet.h.

◆ mTimerInterval

std::chrono::milliseconds ripple::PeerSet::mTimerInterval
protectedinherited

Definition at line 160 of file PeerSet.h.

◆ mTimeouts

int ripple::PeerSet::mTimeouts
protectedinherited

Definition at line 161 of file PeerSet.h.

◆ mComplete

bool ripple::PeerSet::mComplete
protectedinherited

Definition at line 162 of file PeerSet.h.

◆ mFailed

bool ripple::PeerSet::mFailed
protectedinherited

Definition at line 163 of file PeerSet.h.

◆ mLastAction

clock_type::time_point ripple::PeerSet::mLastAction
protectedinherited

Definition at line 164 of file PeerSet.h.

◆ mProgress

bool ripple::PeerSet::mProgress
protectedinherited

Definition at line 165 of file PeerSet.h.

◆ mTimer

boost::asio::basic_waitable_timer<std::chrono::steady_clock> ripple::PeerSet::mTimer
protectedinherited

Definition at line 168 of file PeerSet.h.

◆ mPeers

std::set<Peer::id_t> ripple::PeerSet::mPeers
protectedinherited

Definition at line 171 of file PeerSet.h.