26 #ifndef NFD_DAEMON_FW_UNSOLICITED_DATA_POLICY_HPP
27 #define NFD_DAEMON_FW_UNSOLICITED_DATA_POLICY_HPP
56 decide(
const Face& inFace,
const Data& data)
const = 0;
63 Registry& registry = getRegistry();
64 BOOST_ASSERT(registry.count(key) == 0);
65 registry[key] = [] {
return make_unique<P>(); };
70 static unique_ptr<UnsolicitedDataPolicy>
71 create(
const std::string& key);
74 typedef std::function<unique_ptr<UnsolicitedDataPolicy>()> CreateFunc;
75 typedef std::map<std::string, CreateFunc> Registry;
87 decide(
const Face& inFace,
const Data& data)
const final;
96 decide(
const Face& inFace,
const Data& data)
const final;
105 decide(
const Face& inFace,
const Data& data)
const final;
114 decide(
const Face& inFace,
const Data& data)
const final;
128 #define NFD_REGISTER_UNSOLICITED_DATA_POLICY(P, key) \
129 static class NfdAuto ## P ## UnsolicitedDataPolicyRegistrationClass \
132 NfdAuto ## P ## UnsolicitedDataPolicyRegistrationClass() \
134 ::nfd::fw::UnsolicitedDataPolicy::registerPolicy<P>(key); \
136 } g_nfdAuto ## P ## UnsolicitedDataPolicyRegistrationVariable
138 #endif // NFD_DAEMON_FW_UNSOLICITED_DATA_POLICY_HPP
virtual UnsolicitedDataDecision decide(const Face &inFace, const Data &data) const final
static void registerPolicy(const std::string &key)
virtual UnsolicitedDataDecision decide(const Face &inFace, const Data &data) const final
drops all unsolicited Data
admits all unsolicited Data
virtual UnsolicitedDataDecision decide(const Face &inFace, const Data &data) const =0
admits unsolicited Data from non-local faces
static unique_ptr< UnsolicitedDataPolicy > create(const std::string &key)
DropAllUnsolicitedDataPolicy DefaultUnsolicitedDataPolicy
the default UnsolicitedDataPolicy
the Data should be dropped
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents...
determines how to process an unsolicited Data
virtual ~UnsolicitedDataPolicy()=default
admits unsolicited Data from local faces
virtual UnsolicitedDataDecision decide(const Face &inFace, const Data &data) const final
UnsolicitedDataDecision
a decision made by UnsolicitedDataPolicy
the Data should be cached in the ContentStore
virtual UnsolicitedDataDecision decide(const Face &inFace, const Data &data) const final
std::ostream & operator<<(std::ostream &os, UnsolicitedDataDecision d)