Commit Graph

33 Commits

Author SHA1 Message Date
Junxiao Shi 340d5533ea table: make name_tree::Node the sole owner of name_tree::Entry
This commit also improves name_tree::Entry test coverage.

refs #3687

Change-Id: I92375f29fbebab82c67da7dff2ea7a2952ba2cca
2016-08-13 04:00:35 +00:00
Junxiao Shi e7258ffa88 table: cleanupOnFaceRemoval doesn't rely on shared_ptr<name_tree::Entry> anymore
refs #3687

Change-Id: I3901f053bf370ca5a19a0fea72aec8eb58fcfe10
2016-08-12 23:55:47 +00:00
Junxiao Shi dd8f66140b table: NameTree::findLongestPrefixMatch accepts all table entry types
This simplifies longest prefix match procedures in FIB and StrategyChoice.

refs #3687

Change-Id: I9aa93232124b91bae7890d065337ac9389e8398e
2016-08-12 15:42:52 +00:00
Junxiao Shi 7f35843d58 table: NameTree::lookup return Entry& instead of shared_ptr
refs #3687

Change-Id: Ie86057337dd36ff2bc6ef3ea0c73fd4ffc4b13d0
2016-08-11 17:06:33 +00:00
Junxiao Shi f2420fc7a3 table: ensure NameTree::lookup(tableEntry) does not return nullptr
NameTree::lookup(tableEntry) is always equivalent to NameTree::lookup(Name).
NameTree::getEntry(tableEntry) should be used when inserting new name tree entry is undesired.

refs #3687

Change-Id: I0b17cd07dde83341976cfe66c85855dfb2fa6e89
2016-08-11 13:18:21 +00:00
Junxiao Shi 811c010098 table: NameTree findExactMatch, findLongestPrefixMatch return Entry*
refs #3687

Change-Id: I32752fd711b9641228fbb7f356e72144780cf9ec
2016-08-10 04:12:45 +00:00
Junxiao Shi e3cf285ee7 table: delete deprecated functions in NameTree
NameTree::eraseEntryIfEmpty is renamed to eraseIfEmpty;
the deprecated overload that accepts shared_ptr<name_tree::Entry> is deleted.
name_tree::Entry::getPrefix is deleted in favor of getName.

This commit also improves Doxygen in NameTree class.

refs #3687

Change-Id: Ia98ca676ce6d3bc7b2e97328adccac911c8167d7
2016-08-09 03:50:56 +00:00
Junxiao Shi b660b4c9c0 table: refactor NameTree hashtable
refs #3687

Change-Id: I908c1d7e67da861fc86a756fc0bc69b99ee696f7
2016-08-06 20:47:44 +00:00
Junxiao Shi 029401f6cc table: refactor NameTree iterator
refs #3687

Change-Id: Icf5be98d79cfaa27597f62832fcd0189df2731d1
2016-08-05 12:55:14 +00:00
Junxiao Shi 2570f3ec4f table: NameTree code style corrections
refs #3687

Change-Id: I25cfac1d8b11236c251c2ab717facb82b62dcb10
2016-07-27 02:48:29 +00:00
Junxiao Shi 80f9fcdaa1 table: don't use shared_ptr in Measurements
refs #3164

Change-Id: I7705d00ac155b15b5db69809610b68e96360a0ae
2016-07-24 22:52:28 -07:00
Junxiao Shi ff10da6575 table: attach unique_ptr<strategy_choice::Entry> onto NameTree
refs #3164

Change-Id: I5cce7e43dba77cdaaa07347ec7ffca13f242113c
2016-07-13 17:57:43 +00:00
Junxiao Shi a6de4290c8 table: don't use shared_ptr in FIB
refs #3164

Change-Id: I5b5eb47d60f6bf5b6389c32ac840f793767e4334
2016-07-12 02:08:10 +00:00
Junxiao Shi b184e5324d table: NameTree::getEntry
NameTree::get is renamed to NameTree::lookup.
NameTree::getEntry is introduced to return the NameTreeEntry on which a table entry is attached.
tableEntry::m_nameTreeEntry is changed to weak_ptr to avoid circular shared_ptr reference.

refs #3608, #3619

Change-Id: I425b6a2eb5fe3024bbaff4ff766eb6739be54b02
2016-05-26 18:09:57 +00:00
Junxiao Shi 4370fde844 table: fix PIT not matching full name
refs #3363

Change-Id: I4ff3d02aaf43c3aaba843cfcf6221c218c1cea99
2016-02-24 13:28:45 -08:00
Alexander Afanasyev b755e9d5a7 docs: Fixing doxygen warnings
Change-Id: Ic85f86f4de8224e2fa5d1c41f6afb0f367af5b37
Refs: #3210
2015-10-22 11:34:56 -07:00
hwyuan 8082993f7f table: Remove useless boolean in NameTree::const_iterator::operator++
Refs: #2808

Change-Id: Ief819d46a4c44eede5e1fecb951fb3e6002ad409
2015-07-12 19:41:38 -07:00
Alexander Afanasyev 319f2c8dbc src: Update copyright notices for files modified in 2015
Change-Id: Ia52e6e891a06fcc7ace06eafd2fffecd7bd55a95
Refs: #2352
2015-01-19 21:45:21 -08:00
Alexander Afanasyev 09fc3d9df8 table: Ensure Fib::const_iterator is default and copy constructible
This functionality is necessary for ndnSIM python bindings and is
technically required by ForwardIterator C++ concept
(http://en.cppreference.com/w/cpp/concept/ForwardIterator)

Change-Id: Ibe0812c3a2cf05840cd3e83b941cc52affe2ac65
Refs: #2338
2015-01-06 10:50:27 -08:00
Junxiao Shi ac7b437cdb table/face: fix unused variable warnings in NameTree and NDNLP Slicer
refs #2290, #2287

Change-Id: I40f80f4c8a9fe830edafeada2bbd0b881194d0a3
2014-12-15 07:33:22 -08:00
Junxiao Shi 5ccd0c27fd table: use boost::iterator_range in NameTree
refs #2155

Change-Id: I14efacf26aa1143177038fff3cf20d9d845f2c68
2014-12-04 01:41:45 -08:00
Junxiao Shi 60607c734d table: make NameTree enumeration usable with range-based for
NameTree::fullEnumerate and NameTree::partialEnumerate are changed
to return a type usable with range-based for.

NameTree enumeration test cases are also simplified.

refs #2155

Change-Id: I315d9502d2194670aa7054ab956ededefb0c7ca0
2014-11-29 10:35:06 -08:00
Junxiao Shi 2b73ca3216 table: make NameTree::findAllMatches usable with range-based for
refs #2155

Change-Id: I298825145cf544faaeeb9e558f6deb6703d434c0
2014-11-19 09:30:08 -08:00
Haowei Yuan f52dac7f03 table: NameTree optimization
This commit adds platform-specific hash function selection and hash
table shrink function.

Change-Id: Iaaa0e5b86842d4e0582d3523f0a6b6836e152239
Refs: #1305
2014-04-10 16:46:49 -07:00
Davide Pesavento 52a18f9428 all: cleanup common.hpp and import typenames from ndn namespace.
This allows us to compile NFD in C++11 mode, making use of std::shared_ptr,
std::function, std::bind, etc. rather than their boost equivalents
(provided that ndn-cpp-dev is also compiled in C++11 mode). This is an
experimental feature and may not work properly.

Change-Id: I310529f78e1e428a8530b087983130d1ef3a9d88
2014-04-10 15:14:15 -07:00
Alexander Afanasyev 9bcbc7c130 docs: Update of copyright and license statement in all .hpp and .cpp files
Change-Id: I4082db67f2390482615a780d91a513f09d57a9a4
Refs: #1266
2014-04-07 09:18:25 -07:00
Alexander Afanasyev bf9edeeaee logging: Reducing log level in several places
INFO level is suppose to be used for informational messages that are
useful for ordinary user, but in several places we used it as a DEBUG
output.

In CS the level is reduced even more, to TRACE.

Change-Id: I9058e25d95de79661099dd4624d802cc33420983
2014-04-01 22:24:50 -07:00
Haowei Yuan 694bfb6d72 table: Fixing a bug in Name Tree resize function
In the Name Tree resize() function, the pre pointer needs to be reset for each bucket.

Change-Id: I58526c5aaedc63f47aa64dbe285657b98b2a227c
2014-04-01 14:47:17 -05:00
HangZhang cb4fc83bff table: shortcuts between FIB, PIT, Measurements, StrategyChoice
refs #1202

Change-Id: Ie63ab792e840de7e0889d385d3e8ea8a112cb7e5
2014-03-11 16:31:09 -07:00
Junxiao Shi efceadc378 fib: implicitly delete empty Entry
Fib::removeNextHopFromAllEntries automatically deletes fib::Entry
if the last nexthop record is being removed.

refs #1341

Change-Id: I36d42fe8f9fc8f03d194f845020aff408cd70488
2014-03-09 19:39:26 -07:00
Haowei Yuan e1079fc4e4 table: NameTree enumeration
refs #1318

Change-Id: I26f25cefe8f2939ca884103f1b081c0c02325207
2014-03-09 19:37:04 -05:00
Junxiao Shi 4063184af0 table: NameTree::findLongestPrefixMatch predicate
refs #1313

Change-Id: I759c8ddf9bc0fe5b970c979f69131a98b1ef32e4
2014-03-03 09:27:13 -07:00
HYuan a9b85754b2 table: Name Tree Implementation
Change-Id: I27dbe50a1f484a7722b443dea6197a0f8d74aa0a
2014-02-26 10:35:16 -08:00