rippled
Loading...
Searching...
No Matches
TransactionAcquire.h
1#ifndef XRPL_APP_LEDGER_TRANSACTIONACQUIRE_H_INCLUDED
2#define XRPL_APP_LEDGER_TRANSACTIONACQUIRE_H_INCLUDED
3
4#include <xrpld/overlay/PeerSet.h>
5
6#include <xrpl/shamap/SHAMap.h>
7
8namespace ripple {
9
10// VFALCO TODO rename to PeerTxRequest
11// A transaction set we are trying to acquire
13 : public TimeoutCounter,
14 public std::enable_shared_from_this<TransactionAcquire>,
15 public CountedObject<TransactionAcquire>
16{
17public:
19
21 Application& app,
22 uint256 const& hash,
25
30
31 void
32 init(int startPeers);
33
34 void
35 stillNeed();
36
37private:
41
42 void
43 onTimer(bool progress, ScopedLockType& peerSetLock) override;
44
45 void
46 done();
47
48 void
49 addPeers(std::size_t limit);
50
51 void
54 pmDowncast() override;
55};
56
57} // namespace ripple
58
59#endif
Tracks the number of instances of an object.
This class is an "active" object.
void onTimer(bool progress, ScopedLockType &peerSetLock) override
Hook called from invokeOnTimer().
void trigger(std::shared_ptr< Peer > const &)
std::shared_ptr< SHAMap > mMap
std::weak_ptr< TimeoutCounter > pmDowncast() override
Return a weak pointer to this.
void addPeers(std::size_t limit)
std::unique_ptr< PeerSet > mPeerSet
SHAMapAddNode takeNodes(std::vector< std::pair< SHAMapNodeID, Slice > > const &data, std::shared_ptr< Peer > const &)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6