26 #ifndef NFD_DAEMON_TABLE_NAME_TREE_ITERATOR_HPP 27 #define NFD_DAEMON_TABLE_NAME_TREE_ITERATOR_HPP 68 class EnumerationImpl;
88 BOOST_ASSERT(m_impl !=
nullptr);
95 BOOST_ASSERT(m_impl !=
nullptr);
117 shared_ptr<EnumerationImpl> m_impl;
121 const Entry* m_entry;
212 using Range = boost::iterator_range<Iterator>;
217 #endif // NFD_DAEMON_TABLE_NAME_TREE_ITERATOR_HPP
std::pair< bool, bool > operator()(const Entry &) const
EnumerationImpl(const NameTree &nt)
bool operator==(const Iterator &other) const
const Entry * operator->() const
full enumeration implementation
const Entry & operator *() const
void advance(Iterator &i) override
an EntrySelector that accepts every Entry
an EntrySubTreeSelector that accepts every Entry and its children
std::ptrdiff_t difference_type
FullEnumerationImpl(const NameTree &nt, const EntrySelector &pred)
std::ostream & operator<<(std::ostream &os, const Iterator &i)
a hashtable for fast exact name lookup
bool operator!=(const Iterator &other) const
friend std::ostream & operator<<(std::ostream &, const Iterator &)
bool operator()(const Entry &) const
partial enumeration implementation
Copyright (c) 2011-2015 Regents of the University of California.
partial enumeration implementation
PrefixMatchImpl(const NameTree &nt, const EntrySelector &pred)
a common index structure for FIB, PIT, StrategyChoice, and Measurements
boost::iterator_range< Iterator > Range
a Forward Range of name tree entries
std::function< std::pair< bool, bool >(const Entry &)> EntrySubTreeSelector
a predicate to accept or reject an Entry and its children
virtual ~EnumerationImpl()=default
virtual void advance(Iterator &i)=0
std::forward_iterator_tag iterator_category
std::function< bool(const Entry &)> EntrySelector
a predicate to accept or reject an Entry in find operations
void advance(Iterator &i) override
enumeration operation implementation
an entry in the name tree
PartialEnumerationImpl(const NameTree &nt, const EntrySubTreeSelector &pred)