20 #ifndef PSYNC_PARTIAL_PRODUCER_HPP
21 #define PSYNC_PARTIAL_PRODUCER_HPP
63 ndn::KeyChain& keyChain,
64 const ndn::Name& syncPrefix,
69 ndn::KeyChain& keyChain,
70 size_t expectedNumEntries,
71 const ndn::Name& syncPrefix,
72 const ndn::Name& userPrefix,
89 publishName(
const ndn::Name& prefix, std::optional<uint64_t> seq = std::nullopt);
98 satisfyPendingSyncInterests(
const ndn::Name& prefix);
110 onHelloInterest(
const ndn::Name& prefix,
const ndn::Interest& interest);
122 onSyncInterest(
const ndn::Name& prefix,
const ndn::Interest& interest);
125 struct PendingEntryInfo
129 ndn::scheduler::ScopedEventId expirationEvent;
132 std::map<ndn::Name, PendingEntryInfo> m_pendingEntries;
133 ndn::ScopedRegisteredPrefixHandle m_registeredPrefix;
134 ndn::time::milliseconds m_helloReplyFreshness;
#define PSYNC_PUBLIC_WITH_TESTS_ELSE_PRIVATE
Partial sync logic to publish data names.
PartialProducer(ndn::Face &face, ndn::KeyChain &keyChain, const ndn::Name &syncPrefix, const Options &opts)
Constructor.
void publishName(const ndn::Name &prefix, std::optional< uint64_t > seq=std::nullopt)
Publish name to let subscribed consumers know.
Base class for PartialProducer and FullProducer.
Invertible Bloom Lookup Table (Invertible Bloom Filter)
constexpr ndn::time::milliseconds HELLO_REPLY_FRESHNESS
constexpr ndn::time::milliseconds SYNC_REPLY_FRESHNESS
uint32_t ibfCount
Expected number of entries in IBF.
ndn::time::milliseconds helloDataFreshness
FreshnessPeriod of hello Data.
ndn::time::milliseconds syncDataFreshness
FreshnessPeriod of sync Data.
CompressionScheme ibfCompression
Compression scheme to use for IBF.