20 #ifndef PSYNC_PARTIAL_PRODUCER_HPP 21 #define PSYNC_PARTIAL_PRODUCER_HPP 28 #include <ndn-cxx/face.hpp> 29 #include <ndn-cxx/security/key-chain.hpp> 30 #include <ndn-cxx/util/scheduler.hpp> 31 #include <ndn-cxx/util/time.hpp> 64 const ndn::Name& syncPrefix,
65 const ndn::Name& userPrefix,
66 ndn::time::milliseconds helloReplyFreshness = HELLO_REPLY_FRESHNESS,
82 publishName(
const ndn::Name& prefix, ndn::optional<uint64_t> seq = ndn::nullopt);
91 satisfyPendingSyncInterests(
const ndn::Name& prefix);
103 onHelloInterest(
const ndn::Name& prefix,
const ndn::Interest& interest);
115 onSyncInterest(
const ndn::Name& prefix,
const ndn::Interest& interest);
118 struct PendingEntryInfo
122 ndn::scheduler::ScopedEventId expirationEvent;
125 std::map<ndn::Name, PendingEntryInfo> m_pendingEntries;
126 ndn::ScopedRegisteredPrefixHandle m_registeredPrefix;
127 ndn::time::milliseconds m_helloReplyFreshness;
132 #endif // PSYNC_PARTIAL_PRODUCER_HPP Invertible Bloom Lookup Table (Invertible Bloom Filter)
const ndn::time::milliseconds HELLO_REPLY_FRESHNESS
const ndn::time::milliseconds SYNC_REPLY_FRESHNESS
Partial sync logic to publish data names.
void publishName(const ndn::Name &prefix, ndn::optional< uint64_t > seq=ndn::nullopt)
Publish name to let subscribed consumers know.
#define PSYNC_PUBLIC_WITH_TESTS_ELSE_PRIVATE
PartialProducer(size_t expectedNumEntries, ndn::Face &face, 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
Base class for PartialProducer and FullProducer.