table: add CS policy interface

Change-Id: I1946fe03ca00150b1ff9f08acae48c01bc569904
Refs: #1207
This commit is contained in:
Minsheng Zhang committed 2015-06-12 10:03:17 -05:00
1 parent 5620fb2ac9
commit cb6e05f2dd
11 files changed
+797 -273

No files matched your search

-101
View File
@@ -330,107 +330,6 @@ BOOST_AUTO_TEST_CASE(CachingPolicyNoCache)
bind([] { BOOST_CHECK(true); }));
}
BOOST_FIXTURE_TEST_CASE(Evict, UnitTestTimeFixture)
{
Cs cs(3);
shared_ptr<Data> dataA = makeData("ndn:/A");
dataA->setFreshnessPeriod(time::milliseconds(99999));
dataA->wireEncode();
cs.insert(*dataA);
shared_ptr<Data> dataB = makeData("ndn:/B");
dataB->setFreshnessPeriod(time::milliseconds(10));
dataB->wireEncode();
cs.insert(*dataB);
shared_ptr<Data> dataC = makeData("ndn:/C");
dataC->setFreshnessPeriod(time::milliseconds(99999));
dataC->wireEncode();
cs.insert(*dataC, true);
this->advanceClocks(time::milliseconds(11));
// evict unsolicited
shared_ptr<Data> dataD = makeData("ndn:/D");
dataD->setFreshnessPeriod(time::milliseconds(99999));
dataD->wireEncode();
cs.insert(*dataD);
BOOST_CHECK_EQUAL(cs.size(), 3);
cs.find(Interest("ndn:/C"),
bind([] { BOOST_CHECK(false); }),
bind([] { BOOST_CHECK(true); }));
// evict stale
shared_ptr<Data> dataE = makeData("ndn:/E");
dataE->setFreshnessPeriod(time::milliseconds(99999));
dataE->wireEncode();
cs.insert(*dataE);
BOOST_CHECK_EQUAL(cs.size(), 3);
cs.find(Interest("ndn:/B"),
bind([] { BOOST_CHECK(false); }),
bind([] { BOOST_CHECK(true); }));
// evict fifo
shared_ptr<Data> dataF = makeData("ndn:/F");
dataF->setFreshnessPeriod(time::milliseconds(99999));
dataF->wireEncode();
cs.insert(*dataF);
BOOST_CHECK_EQUAL(cs.size(), 3);
cs.find(Interest("ndn:/A"),
bind([] { BOOST_CHECK(false); }),
bind([] { BOOST_CHECK(true); }));
}
BOOST_FIXTURE_TEST_CASE(Refresh, UnitTestTimeFixture)
{
Cs cs(3);
shared_ptr<Data> dataA = makeData("ndn:/A");
dataA->setFreshnessPeriod(time::milliseconds(99999));
dataA->wireEncode();
cs.insert(*dataA);
shared_ptr<Data> dataB = makeData("ndn:/B");
dataB->setFreshnessPeriod(time::milliseconds(10));
dataB->wireEncode();
cs.insert(*dataB);
shared_ptr<Data> dataC = makeData("ndn:/C");
dataC->setFreshnessPeriod(time::milliseconds(10));
dataC->wireEncode();
cs.insert(*dataC);
this->advanceClocks(time::milliseconds(11));
// refresh dataB
shared_ptr<Data> dataB2 = make_shared<Data>(*dataB);
dataB2->wireEncode();
cs.insert(*dataB2);
BOOST_CHECK_EQUAL(cs.size(), 3);
cs.find(Interest("ndn:/A"),
bind([] { BOOST_CHECK(true); }),
bind([] { BOOST_CHECK(false); }));
cs.find(Interest("ndn:/B"),
bind([] { BOOST_CHECK(true); }),
bind([] { BOOST_CHECK(false); }));
cs.find(Interest("ndn:/C"),
bind([] { BOOST_CHECK(true); }),
bind([] { BOOST_CHECK(false); }));
// evict dataC stale
shared_ptr<Data> dataD = makeData("ndn:/D");
dataD->setFreshnessPeriod(time::milliseconds(99999));
dataD->wireEncode();
cs.insert(*dataD);
BOOST_CHECK_EQUAL(cs.size(), 3);
cs.find(Interest("ndn:/C"),
bind([] { BOOST_CHECK(false); }),
bind([] { BOOST_CHECK(true); }));
}
BOOST_AUTO_TEST_CASE(Enumeration)
{
Cs cs;