mgmt: FaceEventNotification equality operators and formatted output
Change-Id: I92aca47a2e3823592d1c0bef07a42dbba5c6cb91
Refs: #3903
diff --git a/src/util/concepts.hpp b/src/util/concepts.hpp
index 20d857e..bb8c744 100644
--- a/src/util/concepts.hpp
+++ b/src/util/concepts.hpp
@@ -106,16 +106,15 @@
}
};
-/** \brief a concept check for a Status Dataset item
- * \sa https://redmine.named-data.net/projects/nfd/wiki/StatusDataset
- */
+namespace detail {
+
template<class X>
-class StatusDatasetItem : public WireEncodable<X>
- , public WireEncodableWithEncodingBuffer<X>
- , public WireDecodable<X>
+class NfdMgmtProtocolStruct : public WireEncodable<X>
+ , public WireEncodableWithEncodingBuffer<X>
+ , public WireDecodable<X>
{
public:
- BOOST_CONCEPT_USAGE(StatusDatasetItem)
+ BOOST_CONCEPT_USAGE(NfdMgmtProtocolStruct)
{
static_assert(std::is_default_constructible<X>::value, "");
static_assert(boost::has_equal_to<X, X, bool>::value, "");
@@ -125,6 +124,24 @@
}
};
+} // namespace detail
+
+/** \brief concept check for an item in a Status Dataset
+ * \sa https://redmine.named-data.net/projects/nfd/wiki/StatusDataset
+ */
+template<class X>
+class StatusDatasetItem : public detail::NfdMgmtProtocolStruct<X>
+{
+};
+
+/** \brief concept check for an item in a Notification Stream
+ * \sa https://redmine.named-data.net/projects/nfd/wiki/Notification
+ */
+template<class X>
+class NotificationStreamItem : public detail::NfdMgmtProtocolStruct<X>
+{
+};
+
// NDN_CXX_ASSERT_DEFAULT_CONSTRUCTIBLE and NDN_CXX_ASSERT_FORWARD_ITERATOR
// originally written as part of NFD codebase