Minor code cleanups
Change-Id: I2b67216754ba30563a65a2697e6801e363986da1
diff --git a/PSync/common.hpp b/PSync/common.hpp
index ea38f40..2bea73d 100644
--- a/PSync/common.hpp
+++ b/PSync/common.hpp
@@ -35,10 +35,10 @@
using namespace ndn::time_literals;
-const ndn::time::milliseconds HELLO_INTEREST_LIFETIME = 1_s;
-const ndn::time::milliseconds HELLO_REPLY_FRESHNESS = 1_s;
-const ndn::time::milliseconds SYNC_INTEREST_LIFETIME = 1_s;
-const ndn::time::milliseconds SYNC_REPLY_FRESHNESS = 1_s;
+inline constexpr ndn::time::milliseconds HELLO_INTEREST_LIFETIME = 1_s;
+inline constexpr ndn::time::milliseconds HELLO_REPLY_FRESHNESS = 1_s;
+inline constexpr ndn::time::milliseconds SYNC_INTEREST_LIFETIME = 1_s;
+inline constexpr ndn::time::milliseconds SYNC_REPLY_FRESHNESS = 1_s;
enum class CompressionScheme {
NONE,
diff --git a/PSync/detail/util.cpp b/PSync/detail/util.cpp
index c1450ef..e6ac832 100644
--- a/PSync/detail/util.cpp
+++ b/PSync/detail/util.cpp
@@ -48,8 +48,6 @@
namespace psync::detail {
-namespace bio = boost::iostreams;
-
static inline uint32_t
ROTL32(uint32_t x, int8_t r)
{
@@ -125,10 +123,14 @@
std::shared_ptr<ndn::Buffer>
compress(CompressionScheme scheme, ndn::span<const uint8_t> buffer)
{
- ndn::OBufferStream out;
- bio::filtering_streambuf<bio::input> in;
+ namespace bio = boost::iostreams;
+
+ bio::filtering_istreambuf in;
switch (scheme) {
+ case CompressionScheme::NONE:
+ break;
+
case CompressionScheme::ZLIB:
#ifdef PSYNC_HAVE_ZLIB
in.push(bio::zlib_compressor(bio::zlib::best_compression));
@@ -168,11 +170,10 @@
#else
NDN_THROW(CompressionError("ZSTD compression not supported!"));
#endif
-
- case CompressionScheme::NONE:
- break;
}
+
in.push(bio::array_source(reinterpret_cast<const char*>(buffer.data()), buffer.size()));
+ ndn::OBufferStream out;
bio::copy(in, out);
return out.buf();
@@ -181,10 +182,14 @@
std::shared_ptr<ndn::Buffer>
decompress(CompressionScheme scheme, ndn::span<const uint8_t> buffer)
{
- ndn::OBufferStream out;
- bio::filtering_streambuf<bio::input> in;
+ namespace bio = boost::iostreams;
+
+ bio::filtering_istreambuf in;
switch (scheme) {
+ case CompressionScheme::NONE:
+ break;
+
case CompressionScheme::ZLIB:
#ifdef PSYNC_HAVE_ZLIB
in.push(bio::zlib_decompressor());
@@ -224,11 +229,10 @@
#else
NDN_THROW(CompressionError("ZSTD compression not supported!"));
#endif
-
- case CompressionScheme::NONE:
- break;
}
+
in.push(bio::array_source(reinterpret_cast<const char*>(buffer.data()), buffer.size()));
+ ndn::OBufferStream out;
bio::copy(in, out);
return out.buf();
diff --git a/PSync/full-producer.cpp b/PSync/full-producer.cpp
index b5cf256..baa50e4 100644
--- a/PSync/full-producer.cpp
+++ b/PSync/full-producer.cpp
@@ -21,10 +21,9 @@
#include "PSync/detail/state.hpp"
#include "PSync/detail/util.hpp"
+#include <ndn-cxx/lp/tags.hpp>
#include <ndn-cxx/security/validator-null.hpp>
#include <ndn-cxx/util/logger.hpp>
-#include <ndn-cxx/util/segment-fetcher.hpp>
-#include <ndn-cxx/lp/tags.hpp>
#include <cstring>
@@ -37,7 +36,7 @@
size_t expectedNumEntries,
const ndn::Name& syncPrefix,
const ndn::Name& userPrefix,
- const UpdateCallback& onUpdateCallBack,
+ UpdateCallback onUpdateCb,
ndn::time::milliseconds syncInterestLifetime,
ndn::time::milliseconds syncReplyFreshness,
CompressionScheme ibltCompression,
@@ -45,13 +44,11 @@
: ProducerBase(face, keyChain, expectedNumEntries, syncPrefix, userPrefix,
syncReplyFreshness, ibltCompression, contentCompression)
, m_syncInterestLifetime(syncInterestLifetime)
- , m_onUpdate(onUpdateCallBack)
- , m_jitter(100, 500)
+ , m_onUpdate(std::move(onUpdateCb))
{
- m_registeredPrefix = m_face.setInterestFilter(
- ndn::InterestFilter(m_syncPrefix).allowLoopback(false),
- std::bind(&FullProducer::onSyncInterest, this, _1, _2),
- std::bind(&FullProducer::onRegisterFailed, this, _1, _2));
+ m_registeredPrefix = m_face.setInterestFilter(ndn::InterestFilter(m_syncPrefix).allowLoopback(false),
+ [this] (auto&&... args) { onSyncInterest(std::forward<decltype(args)>(args)...); },
+ [] (auto&&... args) { onRegisterFailed(std::forward<decltype(args)>(args)...); });
// Should we do this after setInterestFilter success call back
// (Currently following ChronoSync's way)
diff --git a/PSync/full-producer.hpp b/PSync/full-producer.hpp
index 205a89c..69d6301 100644
--- a/PSync/full-producer.hpp
+++ b/PSync/full-producer.hpp
@@ -51,9 +51,9 @@
* @param expectedNumEntries Expected number of entries in IBF
* @param syncPrefix The prefix of the sync group
* @param userPrefix The prefix of the first user in the group
- * @param onUpdateCallBack The call back to be called when there is new data
- * @param syncInterestLifetime lifetime of the sync interest
- * @param syncReplyFreshness freshness of sync data
+ * @param onUpdateCallBack The callback to be invoked when there is new data
+ * @param syncInterestLifetime Lifetime of the sync interest
+ * @param syncReplyFreshness FreshnessPeriod of sync data
* @param ibltCompression Compression scheme to use for IBF
* @param contentCompression Compression scheme to use for Data content
*/
@@ -62,7 +62,7 @@
size_t expectedNumEntries,
const ndn::Name& syncPrefix,
const ndn::Name& userPrefix,
- const UpdateCallback& onUpdateCallBack,
+ UpdateCallback onUpdateCallBack,
ndn::time::milliseconds syncInterestLifetime = SYNC_INTEREST_LIFETIME,
ndn::time::milliseconds syncReplyFreshness = SYNC_REPLY_FRESHNESS,
CompressionScheme ibltCompression = CompressionScheme::DEFAULT,
@@ -186,7 +186,7 @@
ndn::time::milliseconds m_syncInterestLifetime;
UpdateCallback m_onUpdate;
ndn::scheduler::ScopedEventId m_scheduledSyncInterestId;
- std::uniform_int_distribution<> m_jitter;
+ std::uniform_int_distribution<> m_jitter{100, 500};
ndn::Name m_outstandingInterestName;
ndn::ScopedRegisteredPrefixHandle m_registeredPrefix;
std::shared_ptr<ndn::util::SegmentFetcher> m_fetcher;
diff --git a/PSync/partial-producer.cpp b/PSync/partial-producer.cpp
index b76658a..0c27b74 100644
--- a/PSync/partial-producer.cpp
+++ b/PSync/partial-producer.cpp
@@ -23,7 +23,6 @@
#include <ndn-cxx/util/logger.hpp>
#include <cstring>
-#include <limits>
namespace psync {
@@ -45,13 +44,13 @@
, m_helloReplyFreshness(helloReplyFreshness)
{
m_registeredPrefix = m_face.registerPrefix(m_syncPrefix,
- [this] (const ndn::Name& syncPrefix) {
+ [this] (const auto&) {
m_face.setInterestFilter(ndn::Name(m_syncPrefix).append(HELLO),
std::bind(&PartialProducer::onHelloInterest, this, _1, _2));
m_face.setInterestFilter(ndn::Name(m_syncPrefix).append(SYNC),
std::bind(&PartialProducer::onSyncInterest, this, _1, _2));
},
- std::bind(&PartialProducer::onRegisterFailed, this, _1, _2));
+ [] (auto&&... args) { onRegisterFailed(std::forward<decltype(args)>(args)...); });
}
void
diff --git a/PSync/partial-producer.hpp b/PSync/partial-producer.hpp
index 0a29cb1..ffc7de7 100644
--- a/PSync/partial-producer.hpp
+++ b/PSync/partial-producer.hpp
@@ -20,14 +20,8 @@
#ifndef PSYNC_PARTIAL_PRODUCER_HPP
#define PSYNC_PARTIAL_PRODUCER_HPP
-#include "PSync/detail/bloom-filter.hpp"
#include "PSync/producer-base.hpp"
-
-#include <map>
-
-#include <ndn-cxx/face.hpp>
-#include <ndn-cxx/security/key-chain.hpp>
-#include <ndn-cxx/util/scheduler.hpp>
+#include "PSync/detail/bloom-filter.hpp"
namespace psync {
@@ -53,8 +47,8 @@
* @param expectedNumEntries Expected number of entries in IBF
* @param syncPrefix The prefix of the sync group
* @param userPrefix The prefix of the first user in the group
- * @param syncReplyFreshness freshness of sync data
- * @param helloReplyFreshness freshness of hello data
+ * @param helloReplyFreshness FreshnessPeriod of hello data
+ * @param syncReplyFreshness FreshnessPeriod of sync data
* @param ibltCompression Compression scheme to use for IBF
*/
PartialProducer(ndn::Face& face,
diff --git a/PSync/producer-base.cpp b/PSync/producer-base.cpp
index d350a69..10706ab 100644
--- a/PSync/producer-base.cpp
+++ b/PSync/producer-base.cpp
@@ -23,9 +23,6 @@
#include <ndn-cxx/util/exception.hpp>
#include <ndn-cxx/util/logger.hpp>
-#include <cstring>
-#include <limits>
-
namespace psync {
NDN_LOG_INIT(psync.ProducerBase);
@@ -127,22 +124,23 @@
ProducerBase::sendApplicationNack(const ndn::Name& name)
{
NDN_LOG_DEBUG("Sending application nack");
+
ndn::Name dataName(name);
m_iblt.appendToName(dataName);
-
dataName.appendSegment(0);
ndn::Data data(dataName);
- data.setFreshnessPeriod(m_syncReplyFreshness);
- data.setContentType(ndn::tlv::ContentType_Nack);
- data.setFinalBlock(dataName[-1]);
+ data.setContentType(ndn::tlv::ContentType_Nack)
+ .setFreshnessPeriod(m_syncReplyFreshness)
+ .setFinalBlock(dataName[-1]);
+
m_keyChain.sign(data);
m_face.put(data);
}
void
-ProducerBase::onRegisterFailed(const ndn::Name& prefix, const std::string& msg) const
+ProducerBase::onRegisterFailed(const ndn::Name& prefix, const std::string& msg)
{
- NDN_LOG_ERROR("ProducerBase::onRegisterFailed(" << prefix << "): " << msg);
+ NDN_LOG_ERROR("onRegisterFailed(" << prefix << "): " << msg);
NDN_THROW(Error(msg));
}
diff --git a/PSync/producer-base.hpp b/PSync/producer-base.hpp
index e810111..adfc8d1 100644
--- a/PSync/producer-base.hpp
+++ b/PSync/producer-base.hpp
@@ -27,7 +27,6 @@
#include <ndn-cxx/face.hpp>
#include <ndn-cxx/security/key-chain.hpp>
-#include <ndn-cxx/security/validator-config.hpp>
#include <ndn-cxx/util/random.hpp>
#include <ndn-cxx/util/scheduler.hpp>
@@ -43,7 +42,7 @@
/**
* @brief Base class for PartialProducer and FullProducer
*
- * Contains code common to both
+ * Contains code common to both.
*/
class ProducerBase
{
@@ -149,10 +148,10 @@
sendApplicationNack(const ndn::Name& name);
/**
- * @brief Logs a message if setting an interest filter fails
+ * @brief Logs a message and throws if setting an interest filter fails
*/
- void
- onRegisterFailed(const ndn::Name& prefix, const std::string& msg) const;
+ [[noreturn]] static void
+ onRegisterFailed(const ndn::Name& prefix, const std::string& msg);
PSYNC_PUBLIC_WITH_TESTS_ELSE_PROTECTED:
ndn::Face& m_face;
diff --git a/examples/consumer.cpp b/examples/consumer.cpp
index b63bc83..f787c97 100644
--- a/examples/consumer.cpp
+++ b/examples/consumer.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2020, The University of Memphis
+ * Copyright (c) 2014-2022, The University of Memphis
*
* This file is part of PSync.
* See AUTHORS.md for complete list of PSync authors and contributors.
@@ -19,7 +19,7 @@
#include <PSync/consumer.hpp>
-#include <ndn-cxx/name.hpp>
+#include <ndn-cxx/face.hpp>
#include <ndn-cxx/util/logger.hpp>
#include <ndn-cxx/util/random.hpp>
@@ -44,7 +44,6 @@
std::bind(&PSyncConsumer::afterReceiveHelloData, this, _1),
std::bind(&PSyncConsumer::processSyncUpdate, this, _1),
m_nSub, 0.001)
- , m_rng(ndn::random::getRandomNumberEngine())
{
// This starts the consumer side by sending a hello interest to the producer
// When the producer responds with hello data, afterReceiveHelloData is called
@@ -96,18 +95,18 @@
private:
ndn::Face m_face;
- int m_nSub;
+ int m_nSub;
psync::Consumer m_consumer;
- ndn::random::RandomNumberEngine& m_rng;
+
+ ndn::random::RandomNumberEngine& m_rng{ndn::random::getRandomNumberEngine()};
};
int
main(int argc, char* argv[])
{
if (argc != 3) {
- std::cout << "usage: " << argv[0] << " "
- << "<sync-prefix> <number-of-subscriptions>" << std::endl;
+ std::cerr << "Usage: " << argv[0] << " <sync-prefix> <number-of-subscriptions>\n";
return 1;
}
diff --git a/examples/full-sync.cpp b/examples/full-sync.cpp
index 3ed9814..29d5311 100644
--- a/examples/full-sync.cpp
+++ b/examples/full-sync.cpp
@@ -43,18 +43,16 @@
*/
Producer(const ndn::Name& syncPrefix, const std::string& userPrefix,
int numDataStreams, int maxNumPublish)
- : m_fullProducer(m_face, m_keyChain, 80, syncPrefix, userPrefix,
- std::bind(&Producer::processSyncUpdate, this, _1),
- 1600_ms, 1600_ms)
+ : m_producer(m_face, m_keyChain, 80, syncPrefix, userPrefix,
+ std::bind(&Producer::processSyncUpdate, this, _1),
+ 1600_ms, 1600_ms)
, m_maxNumPublish(maxNumPublish)
- , m_rng(ndn::random::getRandomNumberEngine())
- , m_rangeUniformRandom(0, 60000)
{
// Add user prefixes and schedule updates for them in specified interval
for (int i = 0; i < numDataStreams; i++) {
ndn::Name prefix(userPrefix + "-" + std::to_string(i));
- m_fullProducer.addUserNode(prefix);
- m_scheduler.schedule(ndn::time::milliseconds(m_rangeUniformRandom(m_rng)),
+ m_producer.addUserNode(prefix);
+ m_scheduler.schedule(ndn::time::milliseconds(m_uniformRand(m_rng)),
[this, prefix] { doUpdate(prefix); });
}
}
@@ -69,13 +67,13 @@
void
doUpdate(const ndn::Name& prefix)
{
- m_fullProducer.publishName(prefix);
+ m_producer.publishName(prefix);
- uint64_t seqNo = m_fullProducer.getSeqNo(prefix).value();
+ uint64_t seqNo = m_producer.getSeqNo(prefix).value();
NDN_LOG_INFO("Publish: " << prefix << "/" << seqNo);
if (seqNo < m_maxNumPublish) {
- m_scheduler.schedule(ndn::time::milliseconds(m_rangeUniformRandom(m_rng)),
+ m_scheduler.schedule(ndn::time::milliseconds(m_uniformRand(m_rng)),
[this, prefix] { doUpdate(prefix); });
}
}
@@ -95,20 +93,19 @@
ndn::KeyChain m_keyChain;
ndn::Scheduler m_scheduler{m_face.getIoService()};
- psync::FullProducer m_fullProducer;
+ psync::FullProducer m_producer;
uint64_t m_maxNumPublish;
- ndn::random::RandomNumberEngine& m_rng;
- std::uniform_int_distribution<> m_rangeUniformRandom;
+ ndn::random::RandomNumberEngine& m_rng{ndn::random::getRandomNumberEngine()};
+ std::uniform_int_distribution<> m_uniformRand{0, 60000};
};
int
main(int argc, char* argv[])
{
if (argc != 5) {
- std::cout << "usage: " << argv[0] << " <syncPrefix> <user-prefix> "
- << "<number-of-user-prefixes> <max-number-of-updates-per-user-prefix>"
- << std::endl;
+ std::cerr << "Usage: " << argv[0] << " <sync-prefix> <user-prefix> "
+ << "<number-of-user-prefixes> <max-number-of-updates-per-user-prefix>\n";
return 1;
}
diff --git a/examples/producer.cpp b/examples/producer.cpp
index 4e4c77a..05ca842 100644
--- a/examples/producer.cpp
+++ b/examples/producer.cpp
@@ -41,8 +41,6 @@
int numDataStreams, int maxNumPublish)
: m_producer(m_face, m_keyChain, 40, syncPrefix, userPrefix + "-0")
, m_maxNumPublish(maxNumPublish)
- , m_rng(ndn::random::getRandomNumberEngine())
- , m_rangeUniformRandom(0, 60000)
{
// Add user prefixes and schedule updates for them
for (int i = 0; i < numDataStreams; i++) {
@@ -52,8 +50,8 @@
// Note that this does not add the already added userPrefix-0 in the constructor
m_producer.addUserNode(updateName);
- // Each user prefix is updated at random interval between 0 and 60 second
- m_scheduler.schedule(ndn::time::milliseconds(m_rangeUniformRandom(m_rng)),
+ // Each user prefix is updated at a random interval between 0 and 60 seconds
+ m_scheduler.schedule(ndn::time::milliseconds(m_uniformRand(m_rng)),
[this, updateName] { doUpdate(updateName); });
}
}
@@ -75,8 +73,8 @@
NDN_LOG_INFO("Publish: " << updateName << "/" << seqNo);
if (seqNo < m_maxNumPublish) {
- // Schedule the next update for this user prefix b/w 0 and 60 seconds
- m_scheduler.schedule(ndn::time::milliseconds(m_rangeUniformRandom(m_rng)),
+ // Schedule the next update for this user prefix between 0 and 60 seconds
+ m_scheduler.schedule(ndn::time::milliseconds(m_uniformRand(m_rng)),
[this, updateName] { doUpdate(updateName); });
}
}
@@ -89,17 +87,16 @@
psync::PartialProducer m_producer;
uint64_t m_maxNumPublish;
- ndn::random::RandomNumberEngine& m_rng;
- std::uniform_int_distribution<int> m_rangeUniformRandom;
+ ndn::random::RandomNumberEngine& m_rng{ndn::random::getRandomNumberEngine()};
+ std::uniform_int_distribution<> m_uniformRand{0, 60000};
};
int
main(int argc, char* argv[])
{
if (argc != 5) {
- std::cout << "usage: " << argv[0] << " <sync-prefix> <user-prefix> "
- << "<number-of-user-prefixes> <max-number-of-updates-per-user-prefix>"
- << std::endl;
+ std::cerr << "Usage: " << argv[0] << " <sync-prefix> <user-prefix> "
+ << "<number-of-user-prefixes> <max-number-of-updates-per-user-prefix>\n";
return 1;
}
diff --git a/tests/test-consumer.cpp b/tests/test-consumer.cpp
index 373a8ca..79ee495 100644
--- a/tests/test-consumer.cpp
+++ b/tests/test-consumer.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2014-2020, The University of Memphis
+ * Copyright (c) 2014-2022, The University of Memphis
*
* This file is part of PSync.
* See AUTHORS.md for complete list of PSync authors and contributors.
@@ -22,7 +22,6 @@
#include "tests/boost-test.hpp"
#include "tests/io-fixture.hpp"
-#include <ndn-cxx/name.hpp>
#include <ndn-cxx/util/dummy-client-face.hpp>
namespace psync {
@@ -31,18 +30,9 @@
BOOST_AUTO_TEST_SUITE(TestConsumer)
-BOOST_AUTO_TEST_CASE(Constructor)
-{
- util::DummyClientFace face({true, true});
- BOOST_REQUIRE_NO_THROW(Consumer(Name("/psync"), face,
- [] (const auto&) {},
- [] (const auto&) {},
- 40, 0.001));
-}
-
BOOST_AUTO_TEST_CASE(AddSubscription)
{
- util::DummyClientFace face({true, true});
+ util::DummyClientFace face;
Consumer consumer(Name("/psync"), face,
[] (const auto&) {},
[] (const auto&) {},
@@ -57,7 +47,7 @@
BOOST_FIXTURE_TEST_CASE(ConstantTimeoutForFirstSegment, tests::IoFixture)
{
- util::DummyClientFace face(m_io, {true, true});
+ util::DummyClientFace face(m_io);
Consumer consumer(Name("/psync"), face,
[] (const auto&) {},
[] (const auto&) {},
diff --git a/tests/test-full-sync.cpp b/tests/test-full-sync.cpp
index 81a4aef..e0b9bc9 100644
--- a/tests/test-full-sync.cpp
+++ b/tests/test-full-sync.cpp
@@ -41,18 +41,18 @@
{
BOOST_ASSERT(id >= 0 && id < MAX_NODES);
userPrefixes[id] = "/userPrefix" + std::to_string(id);
- faces[id] = std::make_shared<util::DummyClientFace>(m_io, m_keyChain,
+ faces[id] = std::make_unique<util::DummyClientFace>(m_io, m_keyChain,
util::DummyClientFace::Options{true, true});
- nodes[id] = std::make_shared<FullProducer>(*faces[id], m_keyChain, 40, syncPrefix, userPrefixes[id],
+ nodes[id] = std::make_unique<FullProducer>(*faces[id], m_keyChain, 40, syncPrefix, userPrefixes[id],
[] (const auto&) {});
}
void
clearNodes()
{
- faces.fill(nullptr);
- userPrefixes.fill(Name());
- nodes.fill(nullptr);
+ nodes = {};
+ faces = {};
+ userPrefixes = {};
}
/**
@@ -60,8 +60,8 @@
* @param id update originator node index.
* @param i user prefix index.
*/
- Name
- makeSubPrefix(int id, int i) const
+ static Name
+ makeSubPrefix(int id, int i)
{
return "/userNode" + std::to_string(id) + "-" + std::to_string(i);
}
@@ -141,15 +141,16 @@
* @param maxTotalUpdates maximum totalUpdates parameter.
* @param f test function.
*
- * This method searches for totalUpdates∈[minTotalUpdates,maxTotalUpdates] until there is
- * at least one execution that caused an IBF decode failure above threshold.
- * If such an execution is never achieved within the range, fail the test case.
+ * This method searches for totalUpdates ∈ [minTotalUpdates,maxTotalUpdates] until
+ * there is at least one execution that caused an IBF decode failure above threshold.
+ * If such an execution never occurs within the range, the test case fails.
*
* Current FullSync logic cannot reliably recover from an IBF decode failure below threshold.
* Hence, that condition is not tested.
*/
void
- searchIbfDecodeFailures(int minTotalUpdates, int maxTotalUpdates, std::function<void(int totalUpdates)> f)
+ searchIbfDecodeFailures(int minTotalUpdates, int maxTotalUpdates,
+ const std::function<void(int totalUpdates)>& f)
{
bool hasAboveThreshold = false;
for (int totalUpdates = minTotalUpdates; totalUpdates <= maxTotalUpdates; ++totalUpdates) {
@@ -173,8 +174,8 @@
const Name syncPrefix = "/psync";
static constexpr int MAX_NODES = 4;
std::array<Name, MAX_NODES> userPrefixes;
- std::array<std::shared_ptr<util::DummyClientFace>, MAX_NODES> faces;
- std::array<std::shared_ptr<FullProducer>, MAX_NODES> nodes;
+ std::array<std::unique_ptr<util::DummyClientFace>, MAX_NODES> faces;
+ std::array<std::unique_ptr<FullProducer>, MAX_NODES> nodes;
static constexpr uint64_t NOT_EXIST = std::numeric_limits<uint64_t>::max();
};
@@ -466,7 +467,7 @@
int i = 0;
detail::State state;
- std::shared_ptr<ndn::Buffer> compressed;
+ std::shared_ptr<Buffer> compressed;
do {
auto prefixToPublish = makeSubPrefix(0, i++);
nodes[0]->addUserNode(prefixToPublish);
@@ -476,7 +477,7 @@
auto block = state.wireEncode();
compressed = detail::compress(nodes[0]->m_contentCompression, block);
- } while (compressed->size() < (ndn::MAX_NDN_PACKET_SIZE >> 1));
+ } while (compressed->size() < (MAX_NDN_PACKET_SIZE >> 1));
advanceClocks(10_ms, 100);
@@ -484,7 +485,7 @@
detail::IBLT iblt(40, nodes[0]->m_ibltCompression);
iblt.appendToName(syncInterestName);
- nodes[0]->onSyncInterest(syncPrefix, ndn::Interest(syncInterestName));
+ nodes[0]->onSyncInterest(syncPrefix, Interest(syncInterestName));
advanceClocks(10_ms);
@@ -500,7 +501,7 @@
interestName.appendSegment(1);
faces[0]->sentData.clear();
- nodes[0]->onSyncInterest(syncPrefix, ndn::Interest(interestName));
+ nodes[0]->onSyncInterest(syncPrefix, Interest(interestName));
advanceClocks(10_ms);
// Should have repopulated SegmentPublisher
diff --git a/tests/test-partial-sync.cpp b/tests/test-partial-sync.cpp
index d7a0b4f..801d061 100644
--- a/tests/test-partial-sync.cpp
+++ b/tests/test-partial-sync.cpp
@@ -24,7 +24,7 @@
#include "tests/io-fixture.hpp"
#include "tests/key-chain-fixture.hpp"
-#include <ndn-cxx/name.hpp>
+#include <array>
#include <ndn-cxx/util/dummy-client-face.hpp>
namespace psync {
@@ -33,10 +33,10 @@
class PartialSyncFixture : public tests::IoFixture, public tests::KeyChainFixture
{
-public:
+protected:
PartialSyncFixture()
{
- producer = make_shared<PartialProducer>(face, m_keyChain, 40, syncPrefix, userPrefix);
+ producer = std::make_unique<PartialProducer>(face, m_keyChain, 40, syncPrefix, userPrefix);
addUserNodes("testUser", 10);
}
@@ -52,13 +52,13 @@
void
addConsumer(int id, const std::vector<std::string>& subscribeTo, bool linkToProducer = true)
{
- consumerFaces[id] = std::make_shared<util::DummyClientFace>(m_io, m_keyChain,
+ consumerFaces[id] = std::make_unique<util::DummyClientFace>(m_io, m_keyChain,
util::DummyClientFace::Options{true, true});
if (linkToProducer) {
face.linkTo(*consumerFaces[id]);
}
- consumers[id] = std::make_shared<Consumer>(syncPrefix, *consumerFaces[id],
+ consumers[id] = std::make_unique<Consumer>(syncPrefix, *consumerFaces[id],
[&, id] (const auto& availableSubs) {
numHelloDataRcvd++;
BOOST_CHECK(checkSubList(availableSubs));
@@ -133,14 +133,14 @@
protected:
util::DummyClientFace face{m_io, m_keyChain, {true, true}};
- Name syncPrefix{"psync"};
- Name userPrefix{"testUser-0"};
+ const Name syncPrefix{"psync"};
+ const Name userPrefix{"testUser-0"};
- shared_ptr<PartialProducer> producer;
+ std::unique_ptr<PartialProducer> producer;
std::map<Name, uint64_t> oldSeqMap;
- shared_ptr<Consumer> consumers[3];
- shared_ptr<util::DummyClientFace> consumerFaces[3];
+ std::array<std::unique_ptr<Consumer>, 3> consumers;
+ std::array<std::unique_ptr<util::DummyClientFace>, 3> consumerFaces;
int numHelloDataRcvd = 0;
int numSyncDataRcvd = 0;
};
@@ -292,7 +292,7 @@
util::DummyClientFace face2(m_io, m_keyChain, {true, true});
PartialProducer replicatedProducer(face2, m_keyChain, 40, syncPrefix, userPrefix);
for (int i = 1; i < 10; i++) {
- replicatedProducer.addUserNode("testUser-" + std::to_string(i));
+ replicatedProducer.addUserNode("testUser-" + std::to_string(i));
}
advanceClocks(ndn::time::milliseconds(10));
replicatedProducer.publishName("testUser-2");