change default FreshnessPeriod to 0 ms
set InterestLifetime to default value when not present
do not encode ChildSelector if at default value
refs #3944
Change-Id: I4a3ebf5512d0d2270798ed212eab7903ba8b8ed0
diff --git a/src/selectors.cpp b/src/selectors.cpp
index 7b46b1e..dc741a3 100644
--- a/src/selectors.cpp
+++ b/src/selectors.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/**
- * Copyright (c) 2013-2015 Regents of the University of California.
+ * Copyright (c) 2013-2017 Regents of the University of California.
*
* This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
*
@@ -35,7 +35,7 @@
Selectors::Selectors()
: m_minSuffixComponents(-1)
, m_maxSuffixComponents(-1)
- , m_childSelector(-1)
+ , m_childSelector(DEFAULT_CHILD_SELECTOR)
, m_mustBeFresh(false)
{
}
@@ -78,7 +78,7 @@
}
// ChildSelector
- if (getChildSelector() >= 0) {
+ if (getChildSelector() != DEFAULT_CHILD_SELECTOR) {
totalLength += prependNonNegativeIntegerBlock(encoder, tlv::ChildSelector, getChildSelector());
}
@@ -171,6 +171,9 @@
if (val != m_wire.elements_end()) {
m_childSelector = readNonNegativeInteger(*val);
}
+ else {
+ m_childSelector = DEFAULT_CHILD_SELECTOR;
+ }
// MustBeFresh
val = m_wire.find(tlv::MustBeFresh);
@@ -214,6 +217,9 @@
Selectors&
Selectors::setChildSelector(int childSelector)
{
+ if (childSelector != 0 && childSelector != 1) {
+ BOOST_THROW_EXCEPTION(std::invalid_argument("ChildSelector must be 0 or 1"));
+ }
m_childSelector = childSelector;
m_wire.reset();
return *this;