33 const ndn::Name& syncPrefix,
34 const ndn::Name& userPrefix,
35 ndn::time::milliseconds syncInterestLifetime,
37 : m_syncProtocol(syncProtocol)
38 , m_syncUpdateCallback(syncUpdateCallback)
41 NDN_LOG_DEBUG(
"Using ChronoSync");
42 m_chronoSyncLogic = std::make_shared<chronosync::Logic>(face,
45 std::bind(&SyncProtocolAdapter::onChronoSyncUpdate,
this, _1),
46 chronosync::Logic::DEFAULT_NAME,
47 chronosync::Logic::DEFAULT_VALIDATOR,
48 chronosync::Logic::DEFAULT_RESET_TIMER,
49 chronosync::Logic::DEFAULT_CANCEL_RESET_TIMER,
50 chronosync::Logic::DEFAULT_RESET_INTEREST_LIFETIME,
52 chronosync::Logic::DEFAULT_SYNC_REPLY_FRESHNESS,
53 chronosync::Logic::DEFAULT_RECOVERY_INTEREST_LIFETIME,
57 NDN_LOG_DEBUG(
"Using PSync");
58 m_psyncLogic = std::make_shared<psync::FullProducer>(80,
62 std::bind(&SyncProtocolAdapter::onPSyncUpdate,
this, _1),
63 syncInterestLifetime);
71 m_chronoSyncLogic->addUserNode(userPrefix, chronosync::Logic::DEFAULT_NAME,
FIXED_SESSION);
74 m_psyncLogic->addUserNode(userPrefix);
82 m_chronoSyncLogic->updateSeqNo(seq, userPrefix);
85 m_psyncLogic->publishName(userPrefix, seq);
90 SyncProtocolAdapter::onChronoSyncUpdate(
const std::vector<chronosync::MissingDataInfo>& updates)
94 for (
const auto& update : updates) {
96 m_syncUpdateCallback(update.session.getPrefix(-1), update.high);
101 SyncProtocolAdapter::onPSyncUpdate(
const std::vector<psync::MissingDataInfo>& updates)
105 for (
const auto& update : updates) {
106 m_syncUpdateCallback(update.prefix, update.highSeq);
Copyright (c) 2014-2018, The University of Memphis, Regents of the University of California.
#define INIT_LOGGER(name)
std::function< void(const ndn::Name &updateName, uint64_t seqNo)> SyncUpdateCallback
Copyright (c) 2014-2018, The University of Memphis, Regents of the University of California, Arizona Board of Regents.
void addUserNode(const ndn::Name &userPrefix)
Add user node to ChronoSync or PSync.
SyncProtocolAdapter(ndn::Face &facePtr, int32_t syncProtocol, const ndn::Name &syncPrefix, const ndn::Name &userPrefix, ndn::time::milliseconds syncInterestLifetime, const SyncUpdateCallback &syncUpdateCallback)
void publishUpdate(const ndn::Name &userPrefix, uint64_t seq)
Publish update to ChronoSync or PSync.
#define NLSR_LOG_TRACE(x)