20 #ifndef RIPPLE_APP_CONSENSUS_RCLCENSORSHIPDETECTOR_H_INCLUDED 
   21 #define RIPPLE_APP_CONSENSUS_RCLCENSORSHIPDETECTOR_H_INCLUDED 
   23 #include <ripple/basics/algorithm.h> 
   24 #include <ripple/shamap/SHAMap.h> 
   31 template <
class TxID, 
class Sequence>
 
   49         if (lhs.txid != rhs.txid)
 
   50             return lhs.txid < rhs.txid;
 
   51         return lhs.seq < rhs.seq;
 
   57         return lhs.txid < rhs;
 
   63         return lhs < rhs.txid;
 
   92             [](
auto& x, 
auto const& y) { x.seq = y.seq; },
 
   93             [](
auto const& x, 
auto const& y) { return x.txid < y.txid; });
 
  110     template <
class Predicate>
 
  126             [&pred](
auto const& x) { return pred(x.txid, x.seq); },
 
  
RCLCensorshipDetector()=default
void reset()
Removes all elements from the tracker.
void generalized_set_intersection(InputIter1 first1, InputIter1 last1, InputIter2 first2, InputIter2 last2, Action action, Comp comp)
FwdIter1 remove_if_intersect_or_match(FwdIter1 first1, FwdIter1 last1, InputIter2 first2, InputIter2 last2, Pred pred, Comp comp)
@ accepted
Manifest is valid.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
void propose(TxIDSeqVec proposed)
Add transactions being proposed for the current consensus round.
TxIDSeq(TxID const &txid_, Sequence const &seq_)
void check(std::vector< TxID > accepted, Predicate &&pred)
Determine which transactions made it and perform censorship detection.
friend bool operator<(TxIDSeq const &lhs, TxIDSeq const &rhs)