20 #ifndef PSYNC_PARTIAL_PRODUCER_HPP
21 #define PSYNC_PARTIAL_PRODUCER_HPP
55 ndn::KeyChain& keyChain,
56 size_t expectedNumEntries,
57 const ndn::Name& syncPrefix,
58 const ndn::Name& userPrefix,
75 publishName(
const ndn::Name& prefix, std::optional<uint64_t> seq = std::nullopt);
84 satisfyPendingSyncInterests(
const ndn::Name& prefix);
96 onHelloInterest(
const ndn::Name& prefix,
const ndn::Interest& interest);
108 onSyncInterest(
const ndn::Name& prefix,
const ndn::Interest& interest);
111 struct PendingEntryInfo
115 ndn::scheduler::ScopedEventId expirationEvent;
118 std::map<ndn::Name, PendingEntryInfo> m_pendingEntries;
119 ndn::ScopedRegisteredPrefixHandle m_registeredPrefix;
120 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, size_t expectedNumEntries, const ndn::Name &syncPrefix, const ndn::Name &userPrefix, ndn::time::milliseconds helloReplyFreshness=HELLO_REPLY_FRESHNESS, ndn::time::milliseconds syncReplyFreshness=SYNC_REPLY_FRESHNESS, CompressionScheme ibltCompression=CompressionScheme::NONE)
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