helper+model: Create helper to select the replacement policy of NFD's CS
Change-Id: I10933b5c96fd95bc395a1d08642a1e07e826dc45
Refs: #3837
diff --git a/helper/ndn-stack-helper.hpp b/helper/ndn-stack-helper.hpp
index 0cb3413..bae814f 100644
--- a/helper/ndn-stack-helper.hpp
+++ b/helper/ndn-stack-helper.hpp
@@ -31,6 +31,12 @@
#include "ndn-fib-helper.hpp"
#include "ndn-strategy-choice-helper.hpp"
+namespace nfd {
+namespace cs {
+class Policy;
+} // namespace cs
+} // namespace nfd
+
namespace ns3 {
class Node;
@@ -75,6 +81,12 @@
setCsSize(size_t maxSize);
/**
+ * @brief Set the cache replacement policy for NFD's Content Store
+ */
+ void
+ setPolicy(const std::string& policy);
+
+ /**
* @brief Set ndnSIM 1.0 content store implementation and its attributes
* @param contentStoreClass string, representing class of the content store
* @note ndnSIM 1.0 content store implementation have limited support for Interest selectors
@@ -262,6 +274,11 @@
bool m_needSetDefaultRoutes;
size_t m_maxCsSize;
+ typedef std::function<std::unique_ptr<nfd::cs::Policy>()> PolicyCreationCallback;
+ PolicyCreationCallback m_csPolicyCreationFunc;
+
+ std::map<std::string, PolicyCreationCallback> m_csPolicies;
+
typedef std::list<std::pair<TypeId, FaceCreateCallback>> NetDeviceCallbackList;
NetDeviceCallbackList m_netDeviceCallbacks;
};