| 
    rippled
    
   | 
 
The Logic for maintaining the list of Slot addresses. More...
#include <Logic.h>

Public Types | |
| using | Slots = std::map< beast::IP::Endpoint, std::shared_ptr< SlotImp > > | 
Public Member Functions | |
| Logic (clock_type &clock, Store &store, Checker &checker, beast::Journal journal) | |
| void | load () | 
| void | stop () | 
| Stop the logic.   | |
| void | config (Config const &c) | 
| Config | config () | 
| void | addFixedPeer (std::string const &name, beast::IP::Endpoint const &ep) | 
| void | addFixedPeer (std::string const &name, std::vector< beast::IP::Endpoint > const &addresses) | 
| void | checkComplete (beast::IP::Endpoint const &remoteAddress, beast::IP::Endpoint const &checkedAddress, boost::system::error_code ec) | 
| std::pair< SlotImp::ptr, Result > | new_inbound_slot (beast::IP::Endpoint const &local_endpoint, beast::IP::Endpoint const &remote_endpoint) | 
| std::pair< SlotImp::ptr, Result > | new_outbound_slot (beast::IP::Endpoint const &remote_endpoint) | 
| bool | onConnected (SlotImp::ptr const &slot, beast::IP::Endpoint const &local_endpoint) | 
| Result | activate (SlotImp::ptr const &slot, PublicKey const &key, bool reserved) | 
| std::vector< Endpoint > | redirect (SlotImp::ptr const &slot) | 
| Return a list of addresses suitable for redirection.   | |
| std::vector< beast::IP::Endpoint > | autoconnect () | 
| Create new outbound connection attempts as needed.   | |
| std::vector< std::pair< std::shared_ptr< Slot >, std::vector< Endpoint > > > | buildEndpointsForPeers () | 
| void | once_per_second () | 
| void | preprocess (SlotImp::ptr const &slot, Endpoints &list) | 
| void | on_endpoints (SlotImp::ptr const &slot, Endpoints list) | 
| void | remove (SlotImp::ptr const &slot) | 
| void | on_closed (SlotImp::ptr const &slot) | 
| void | on_failure (SlotImp::ptr const &slot) | 
| template<class FwdIter > | |
| void | onRedirects (FwdIter first, FwdIter last, boost::asio::ip::tcp::endpoint const &remote_address) | 
| bool | fixed (beast::IP::Endpoint const &endpoint) const | 
| bool | fixed (beast::IP::Address const &address) const | 
| template<class Container > | |
| void | get_fixed (std::size_t needed, Container &c, typename ConnectHandouts::Squelches &squelches) | 
| Adds eligible Fixed addresses for outbound attempts.   | |
| void | addStaticSource (std::shared_ptr< Source > const &source) | 
| void | addSource (std::shared_ptr< Source > const &source) | 
| int | addBootcacheAddresses (IPAddresses const &list) | 
| void | fetch (std::shared_ptr< Source > const &source) | 
| bool | is_valid_address (beast::IP::Endpoint const &address) | 
| void | writeSlots (beast::PropertyStream::Set &set, Slots const &slots) | 
| void | onWrite (beast::PropertyStream::Map &map) | 
| Counts const & | counts () const | 
Static Public Member Functions | |
| static std::string | stateString (Slot::State state) | 
The Logic for maintaining the list of Slot addresses.
We keep this in a separate class so it can be instantiated for unit tests.
Definition at line 35 of file src/xrpld/peerfinder/detail/Logic.h.
| using ripple::PeerFinder::Logic< Checker >::Slots = std::map<beast::IP::Endpoint, std::shared_ptr<SlotImp> > | 
Definition at line 41 of file src/xrpld/peerfinder/detail/Logic.h.
| ripple::PeerFinder::Logic< Checker >::Logic | ( | clock_type & | clock, | 
| Store & | store, | ||
| Checker & | checker, | ||
| beast::Journal | journal | ||
| ) | 
Definition at line 92 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::load | ( | ) | 
Definition at line 112 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::stop | ( | ) | 
Stop the logic.
This will cancel the current fetch and set the stopping flag to true to prevent further fetches. Thread safety: Safe to call from any thread. 
Definition at line 125 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::config | ( | Config const & | c | ) | 
Definition at line 140 of file src/xrpld/peerfinder/detail/Logic.h.
| Config ripple::PeerFinder::Logic< Checker >::config | ( | ) | 
Definition at line 148 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::addFixedPeer | ( | std::string const & | name, | 
| beast::IP::Endpoint const & | ep | ||
| ) | 
Definition at line 155 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::addFixedPeer | ( | std::string const & | name, | 
| std::vector< beast::IP::Endpoint > const & | addresses | ||
| ) | 
Definition at line 161 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::checkComplete | ( | beast::IP::Endpoint const & | remoteAddress, | 
| beast::IP::Endpoint const & | checkedAddress, | ||
| boost::system::error_code | ec | ||
| ) | 
Definition at line 202 of file src/xrpld/peerfinder/detail/Logic.h.
| std::pair< SlotImp::ptr, Result > ripple::PeerFinder::Logic< Checker >::new_inbound_slot | ( | beast::IP::Endpoint const & | local_endpoint, | 
| beast::IP::Endpoint const & | remote_endpoint | ||
| ) | 
Definition at line 247 of file src/xrpld/peerfinder/detail/Logic.h.
| std::pair< SlotImp::ptr, Result > ripple::PeerFinder::Logic< Checker >::new_outbound_slot | ( | beast::IP::Endpoint const & | remote_endpoint | ) | 
Definition at line 304 of file src/xrpld/peerfinder/detail/Logic.h.
| bool ripple::PeerFinder::Logic< Checker >::onConnected | ( | SlotImp::ptr const & | slot, | 
| beast::IP::Endpoint const & | local_endpoint | ||
| ) | 
Definition at line 342 of file src/xrpld/peerfinder/detail/Logic.h.
| Result ripple::PeerFinder::Logic< Checker >::activate | ( | SlotImp::ptr const & | slot, | 
| PublicKey const & | key, | ||
| bool | reserved | ||
| ) | 
Definition at line 382 of file src/xrpld/peerfinder/detail/Logic.h.
| std::vector< Endpoint > ripple::PeerFinder::Logic< Checker >::redirect | ( | SlotImp::ptr const & | slot | ) | 
Return a list of addresses suitable for redirection.
This is a legacy function, redirects should be returned in the HTTP handshake and not via TMEndpoints.
Definition at line 462 of file src/xrpld/peerfinder/detail/Logic.h.
| std::vector< beast::IP::Endpoint > ripple::PeerFinder::Logic< Checker >::autoconnect | ( | ) | 
Create new outbound connection attempts as needed.
This implements PeerFinder's "Outbound Connection Strategy"
Definition at line 478 of file src/xrpld/peerfinder/detail/Logic.h.
| std::vector< std::pair< std::shared_ptr< Slot >, std::vector< Endpoint > > > ripple::PeerFinder::Logic< Checker >::buildEndpointsForPeers | ( | ) | 
Definition at line 592 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::once_per_second | ( | ) | 
Definition at line 684 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::preprocess | ( | SlotImp::ptr const & | slot, | 
| Endpoints & | list | ||
| ) | 
Definition at line 705 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::on_endpoints | ( | SlotImp::ptr const & | slot, | 
| Endpoints | list | ||
| ) | 
Definition at line 775 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::remove | ( | SlotImp::ptr const & | slot | ) | 
Definition at line 874 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::on_closed | ( | SlotImp::ptr const & | slot | ) | 
Definition at line 917 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::on_failure | ( | SlotImp::ptr const & | slot | ) | 
Definition at line 975 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::onRedirects | ( | FwdIter | first, | 
| FwdIter | last, | ||
| boost::asio::ip::tcp::endpoint const & | remote_address | ||
| ) | 
Definition at line 1250 of file src/xrpld/peerfinder/detail/Logic.h.
| bool ripple::PeerFinder::Logic< Checker >::fixed | ( | beast::IP::Endpoint const & | endpoint | ) | const | 
Definition at line 995 of file src/xrpld/peerfinder/detail/Logic.h.
| bool ripple::PeerFinder::Logic< Checker >::fixed | ( | beast::IP::Address const & | address | ) | const | 
Definition at line 1007 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::get_fixed | ( | std::size_t | needed, | 
| Container & | c, | ||
| typename ConnectHandouts::Squelches & | squelches | ||
| ) | 
Adds eligible Fixed addresses for outbound attempts.
Definition at line 1024 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::addStaticSource | ( | std::shared_ptr< Source > const & | source | ) | 
Definition at line 1052 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::addSource | ( | std::shared_ptr< Source > const & | source | ) | 
Definition at line 1058 of file src/xrpld/peerfinder/detail/Logic.h.
| int ripple::PeerFinder::Logic< Checker >::addBootcacheAddresses | ( | IPAddresses const & | list | ) | 
Definition at line 1073 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::fetch | ( | std::shared_ptr< Source > const & | source | ) | 
Definition at line 1087 of file src/xrpld/peerfinder/detail/Logic.h.
| bool ripple::PeerFinder::Logic< Checker >::is_valid_address | ( | beast::IP::Endpoint const & | address | ) | 
Definition at line 1136 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::writeSlots | ( | beast::PropertyStream::Set & | set, | 
| Slots const & | slots | ||
| ) | 
Definition at line 1154 of file src/xrpld/peerfinder/detail/Logic.h.
| void ripple::PeerFinder::Logic< Checker >::onWrite | ( | beast::PropertyStream::Map & | map | ) | 
Definition at line 1175 of file src/xrpld/peerfinder/detail/Logic.h.
| Counts const & ripple::PeerFinder::Logic< Checker >::counts | ( | ) | const | 
Definition at line 1218 of file src/xrpld/peerfinder/detail/Logic.h.
      
  | 
  static | 
Definition at line 1224 of file src/xrpld/peerfinder/detail/Logic.h.
| beast::Journal ripple::PeerFinder::Logic< Checker >::m_journal | 
Definition at line 43 of file src/xrpld/peerfinder/detail/Logic.h.
| clock_type& ripple::PeerFinder::Logic< Checker >::m_clock | 
Definition at line 44 of file src/xrpld/peerfinder/detail/Logic.h.
| Store& ripple::PeerFinder::Logic< Checker >::m_store | 
Definition at line 45 of file src/xrpld/peerfinder/detail/Logic.h.
| Checker& ripple::PeerFinder::Logic< Checker >::m_checker | 
Definition at line 46 of file src/xrpld/peerfinder/detail/Logic.h.
| std::recursive_mutex ripple::PeerFinder::Logic< Checker >::lock_ | 
Definition at line 48 of file src/xrpld/peerfinder/detail/Logic.h.
| bool ripple::PeerFinder::Logic< Checker >::stopping_ = false | 
Definition at line 51 of file src/xrpld/peerfinder/detail/Logic.h.
| std::shared_ptr<Source> ripple::PeerFinder::Logic< Checker >::fetchSource_ | 
Definition at line 55 of file src/xrpld/peerfinder/detail/Logic.h.
| Config ripple::PeerFinder::Logic< Checker >::config_ | 
Definition at line 58 of file src/xrpld/peerfinder/detail/Logic.h.
| Counts ripple::PeerFinder::Logic< Checker >::counts_ | 
Definition at line 61 of file src/xrpld/peerfinder/detail/Logic.h.
| std::map<beast::IP::Endpoint, Fixed> ripple::PeerFinder::Logic< Checker >::fixed_ | 
Definition at line 64 of file src/xrpld/peerfinder/detail/Logic.h.
| Livecache ripple::PeerFinder::Logic< Checker >::livecache_ | 
Definition at line 67 of file src/xrpld/peerfinder/detail/Logic.h.
| Bootcache ripple::PeerFinder::Logic< Checker >::bootcache_ | 
Definition at line 70 of file src/xrpld/peerfinder/detail/Logic.h.
| Slots ripple::PeerFinder::Logic< Checker >::slots_ | 
Definition at line 73 of file src/xrpld/peerfinder/detail/Logic.h.
| std::multiset<beast::IP::Address> ripple::PeerFinder::Logic< Checker >::connectedAddresses_ | 
Definition at line 78 of file src/xrpld/peerfinder/detail/Logic.h.
| std::set<PublicKey> ripple::PeerFinder::Logic< Checker >::keys_ | 
Definition at line 81 of file src/xrpld/peerfinder/detail/Logic.h.
| std::vector<std::shared_ptr<Source> > ripple::PeerFinder::Logic< Checker >::m_sources | 
Definition at line 84 of file src/xrpld/peerfinder/detail/Logic.h.
| clock_type::time_point ripple::PeerFinder::Logic< Checker >::m_whenBroadcast | 
Definition at line 86 of file src/xrpld/peerfinder/detail/Logic.h.
| ConnectHandouts::Squelches ripple::PeerFinder::Logic< Checker >::m_squelches | 
Definition at line 88 of file src/xrpld/peerfinder/detail/Logic.h.