20 #include <ripple/app/misc/HashRouter.h> 
   21 #include <ripple/basics/chrono.h> 
   22 #include <ripple/beast/unit_test.h> 
   32         using namespace std::chrono_literals;
 
   42         BEAST_EXPECT(router.
getFlags(key1) == 11111);
 
   44         BEAST_EXPECT(router.
getFlags(key2) == 22222);
 
   53         BEAST_EXPECT(router.
getFlags(key1) == 11111);
 
   62         BEAST_EXPECT(router.
getFlags(key1) == 11111);
 
   63         BEAST_EXPECT(router.
getFlags(key2) == 0);
 
   69         using namespace std::chrono_literals;
 
   77         BEAST_EXPECT(key1 != key2 && key2 != key3 && key3 != key4);
 
   81         BEAST_EXPECT(router.
getFlags(key1) == 12345);
 
   94         BEAST_EXPECT(router.
getFlags(key1) == 12345);
 
   95         BEAST_EXPECT(router.
getFlags(key2) == 9999);
 
  102         BEAST_EXPECT(router.
getFlags(key2) == 9999);
 
  110         BEAST_EXPECT(router.
getFlags(key1) == 0);
 
  111         BEAST_EXPECT(router.
getFlags(key2) == 9999);
 
  112         BEAST_EXPECT(router.
getFlags(key3) == 2222);
 
  121         BEAST_EXPECT(router.
getFlags(key1) == 7654);
 
  122         BEAST_EXPECT(router.
getFlags(key2) == 9999);
 
  123         BEAST_EXPECT(router.
getFlags(key3) == 2222);
 
  133         BEAST_EXPECT(router.
getFlags(key1) == 0);
 
  134         BEAST_EXPECT(router.
getFlags(key2) == 0);
 
  135         BEAST_EXPECT(router.
getFlags(key3) == 0);
 
  136         BEAST_EXPECT(router.
getFlags(key4) == 7890);
 
  147         using namespace std::chrono_literals;
 
  155         BEAST_EXPECT(key1 != key2 && key2 != key3 && key3 != key4);
 
  161         BEAST_EXPECT(
flags == 0);
 
  168         BEAST_EXPECT(
flags == 0);
 
  175         using namespace std::chrono_literals;
 
  180         BEAST_EXPECT(router.
setFlags(key1, 10));
 
  181         BEAST_EXPECT(!router.
setFlags(key1, 10));
 
  182         BEAST_EXPECT(router.
setFlags(key1, 20));
 
  188         using namespace std::chrono_literals;
 
  197         BEAST_EXPECT(peers && peers->empty());
 
  209         BEAST_EXPECT(peers && peers->size() == 3);
 
  220         BEAST_EXPECT(peers && peers->size() == 2);
 
  225         BEAST_EXPECT(peers && peers->size() == 0);
 
  231         using namespace std::chrono_literals;
 
  
bool addSuppressionPeer(uint256 const &key, PeerShortID peer)
int getFlags(uint256 const &key)
bool shouldProcess(uint256 const &key, PeerShortID peer, int &flags, std::chrono::seconds tx_interval)
Stopwatch & stopwatch()
Returns an instance of a wall clock.
Routing table for objects identified by hash.
void addSuppression(uint256 const &key)
std::optional< std::set< PeerShortID > > shouldRelay(uint256 const &key)
Determines whether the hashed item should be relayed.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
bool setFlags(uint256 const &key, int flags)
Set the flags on a hash.
BEAST_DEFINE_TESTSUITE(DeliverMin, app, ripple)