34 ndn::KeyChain& keyChain,
36 const ndn::Name& syncPrefix,
37 const ndn::Name& userPrefix,
38 ndn::time::milliseconds syncInterestLifetime,
40 : m_syncProtocol(syncProtocol)
41 , m_syncUpdateCallback(std::move(syncUpdateCallback))
43 switch (m_syncProtocol) {
46 NDN_LOG_DEBUG(
"Using ChronoSync");
47 m_chronoSyncLogic = std::make_shared<chronosync::Logic>(face,
50 [
this] (
auto&&... args) { onChronoSyncUpdate(std::forward<
decltype(args)>(args)...); },
51 chronosync::Logic::DEFAULT_NAME,
52 chronosync::Logic::DEFAULT_VALIDATOR,
53 chronosync::Logic::DEFAULT_RESET_TIMER,
54 chronosync::Logic::DEFAULT_CANCEL_RESET_TIMER,
55 chronosync::Logic::DEFAULT_RESET_INTEREST_LIFETIME,
57 chronosync::Logic::DEFAULT_SYNC_REPLY_FRESHNESS,
58 chronosync::Logic::DEFAULT_RECOVERY_INTEREST_LIFETIME,
64 NDN_LOG_DEBUG(
"Using PSync");
65 psync::FullProducer::Options opts;
66 opts.onUpdate = [
this] (
auto&&... args) { onPSyncUpdate(std::forward<
decltype(args)>(args)...); };
67 opts.syncInterestLifetime = syncInterestLifetime;
68 m_psyncLogic = std::make_shared<psync::FullProducer>(face, keyChain, syncPrefix, opts);
69 m_psyncLogic->addUserNode(userPrefix);
75 NDN_LOG_DEBUG(
"Using SVS");
76 m_svsCore = std::make_shared<ndn::svs::SVSyncCore>(face,
78 [
this] (
auto&&... args) { onSvsUpdate(std::forward<
decltype(args)>(args)...); });
SyncProtocolAdapter(ndn::Face &face, ndn::KeyChain &keyChain, SyncProtocol syncProtocol, const ndn::Name &syncPrefix, const ndn::Name &userPrefix, ndn::time::milliseconds syncInterestLifetime, SyncUpdateCallback syncUpdateCallback)