Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents, Colorado State University, University Pierre & Marie Curie, Sorbonne University, Washington University in St. More...
#include "cs-policy.hpp"
#include "cs-internal.hpp"
#include "cs-entry-impl.hpp"
#include <ndn-cxx/util/signal.hpp>
#include <boost/iterator/transform_iterator.hpp>
Go to the source code of this file.
Classes | |
class | nfd::cs::Cs |
represents the ContentStore More... | |
struct | nfd::cs::Cs::EntryFromEntryImpl |
Namespaces | |
nfd | |
Copyright (c) 2011-2015 Regents of the University of California. | |
nfd::cs | |
Functions | |
unique_ptr< Policy > | nfd::cs::makeDefaultPolicy () |
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents, Colorado State University, University Pierre & Marie Curie, Sorbonne University, Washington University in St.
Louis, Beijing Institute of Technology, The University of Memphis.
This file is part of NFD (Named Data Networking Forwarding Daemon). See AUTHORS.md for complete list of NFD authors and contributors.
NFD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with NFD, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.
implements the ContentStore
This ContentStore implementation consists of two data structures, a Table, and a set of cleanup queues.
The Table is a container (std::set) sorted by full Names of stored Data packets. Data packets are wrapped in Entry objects. Each Entry contain the Data packet itself, and a few addition attributes such as the staleness of the Data packet.
The cleanup queues are three doubly linked lists which stores Table iterators. The three queues keep track of unsolicited, stale, and fresh Data packet, respectively. Table iterator is placed into, removed from, and moved between suitable queues whenever an Entry is added, removed, or has other attribute changes. The Table iterator of an Entry should be in exactly one queue at any moment. Within each queue, the iterators are kept in first-in-first-out order. Eviction procedure exhausts the first queue before moving onto the next queue, in the order of unsolicited, stale, and fresh queue.
Definition in file cs.hpp.