cs: avoid Entry construction during query
Using C++14's transparent comparators, CS lookup logic can
compare stored Entry objects with the queried Name without
constructing an Entry object. This in turn eliminates the need
for a special "query entry", so EntryImpl class is deleted.
refs #4914
Change-Id: I5b05a1ab9ad696e79f7ebd6045be8de11cd58ee6
diff --git a/daemon/table/cs.hpp b/daemon/table/cs.hpp
index df6c88b..1d15294 100644
--- a/daemon/table/cs.hpp
+++ b/daemon/table/cs.hpp
@@ -27,10 +27,6 @@
#define NFD_DAEMON_TABLE_CS_HPP
#include "cs-policy.hpp"
-#include "cs-internal.hpp"
-#include "cs-entry-impl.hpp"
-
-#include <boost/iterator/transform_iterator.hpp>
namespace nfd {
namespace cs {
@@ -162,32 +158,20 @@
enableServe(bool shouldServe);
public: // enumeration
- class EntryFromEntryImpl
- {
- public:
- typedef const Entry& result_type;
-
- const Entry&
- operator()(const EntryImpl& entry) const
- {
- return entry;
- }
- };
-
/** \brief ContentStore iterator (public API)
*/
- using const_iterator = boost::transform_iterator<EntryFromEntryImpl, iterator, const Entry&>;
+ using const_iterator = iterator;
const_iterator
begin() const
{
- return boost::make_transform_iterator(m_table.begin(), EntryFromEntryImpl());
+ return m_table.begin();
}
const_iterator
end() const
{
- return boost::make_transform_iterator(m_table.end(), EntryFromEntryImpl());
+ return m_table.end();
}
private: