docs: Update documentation and Doxygen documentation generation
diff --git a/model/cs/content-store-impl.h b/model/cs/content-store-impl.h
index 90d0c95..7058009 100644
--- a/model/cs/content-store-impl.h
+++ b/model/cs/content-store-impl.h
@@ -37,6 +37,10 @@
namespace ndn {
namespace cs {
+/**
+ * @ingroup ndn-cs
+ * @brief Cache entry implementation with additional references to the base container
+ */
template<class CS>
class EntryImpl : public Entry
{
@@ -65,6 +69,10 @@
+/**
+ * @ingroup ndn-cs
+ * @brief Base implementation of NDN content store
+ */
template<class Policy>
class ContentStoreImpl : public ContentStore,
protected ndnSIM::trie_with_policy< Name,
@@ -179,7 +187,6 @@
{
NS_LOG_FUNCTION (this << interest->GetName ());
- /// @todo Change to search with predicate
typename super::const_iterator node;
if (interest->GetExclude () == 0)
{
diff --git a/model/cs/content-store-nocache.h b/model/cs/content-store-nocache.h
index 79d1284..98c1850 100644
--- a/model/cs/content-store-nocache.h
+++ b/model/cs/content-store-nocache.h
@@ -29,8 +29,8 @@
namespace cs {
/**
- * \ingroup ndn
- * \brief Implementation of ContentStore that completely disables caching
+ * @ingroup ndn-cs
+ * @brief Implementation of ContentStore that completely disables caching
*/
class Nocache : public ContentStore
{
diff --git a/model/cs/content-store-with-freshness.h b/model/cs/content-store-with-freshness.h
index 22242b9..d9fa1ba 100644
--- a/model/cs/content-store-with-freshness.h
+++ b/model/cs/content-store-with-freshness.h
@@ -30,6 +30,10 @@
namespace ndn {
namespace cs {
+/**
+ * @ingroup ndn-cs
+ * @brief Special content store realization that honors Freshness parameter in Data packets
+ */
template<class Policy>
class ContentStoreWithFreshness :
public ContentStoreImpl< ndnSIM::multi_policy_traits< boost::mpl::vector2< Policy, ndnSIM::freshness_policy_traits > > >
diff --git a/model/cs/content-store-with-stats.h b/model/cs/content-store-with-stats.h
index 3bdb9ec..a3f5fdd 100644
--- a/model/cs/content-store-with-stats.h
+++ b/model/cs/content-store-with-stats.h
@@ -30,6 +30,10 @@
namespace ndn {
namespace cs {
+/**
+ * @ingroup ndn-cs
+ * @brief Special content store realization that provides ability to track stats of CS operations
+ */
template<class Policy>
class ContentStoreWithStats :
public ContentStoreImpl< ndnSIM::multi_policy_traits< boost::mpl::vector2< Policy, ndnSIM::lifetime_stats_policy_traits > > >
diff --git a/model/cs/ndn-content-store.h b/model/cs/ndn-content-store.h
index 66e7667..10a7bd3 100644
--- a/model/cs/ndn-content-store.h
+++ b/model/cs/ndn-content-store.h
@@ -39,11 +39,20 @@
class Name;
class ContentStore;
+/**
+ * @ingroup ndn
+ * @defgroup ndn-cs Content Store
+ */
+
+/**
+ * @ingroup ndn-cs
+ * @brief Namespace for ContentStore operations
+ */
namespace cs {
/**
- * \ingroup ndn
- * \brief NDN content store entry
+ * @ingroup ndn-cs
+ * @brief NDN content store entry
*/
class Entry : public SimpleRefCount<Entry>
{
@@ -88,7 +97,7 @@
/**
- * \ingroup ndn
+ * @ingroup ndn-cs
* \brief Base class for NDN content store
*
* Particular implementations should implement Lookup, Add, and Print methods
diff --git a/model/fib/ndn-fib-entry.h b/model/fib/ndn-fib-entry.h
index 0b1a6bc..2f42259 100644
--- a/model/fib/ndn-fib-entry.h
+++ b/model/fib/ndn-fib-entry.h
@@ -45,10 +45,14 @@
class Fib;
+/**
+ * @ingroup ndn-fib
+ * @brief Namespace for FIB operations
+ */
namespace fib {
/**
- * \ingroup ndn
+ * @ingroup ndn-fib
* \brief Structure holding various parameters associated with a (FibEntry, Face) tuple
*/
class FaceMetric
@@ -191,8 +195,8 @@
/**
- * \ingroup ndn
- * \brief Typedef for indexed face container of Entry
+ * @ingroup ndn-fib
+ * @brief Typedef for indexed face container of Entry
*
* Currently, there are 2 indexes:
* - by face (used to find record and update metric)
@@ -232,7 +236,7 @@
};
/**
- * \ingroup ndn
+ * @ingroup ndn-fib
* \brief Structure for FIB table entry, holding indexed list of
* available faces and their respective metrics
*/
diff --git a/model/fib/ndn-fib-impl.h b/model/fib/ndn-fib-impl.h
index 3054420..b221d48 100644
--- a/model/fib/ndn-fib-impl.h
+++ b/model/fib/ndn-fib-impl.h
@@ -31,6 +31,10 @@
namespace ndn {
namespace fib {
+/**
+ * @ingroup ndn-fib
+ * @brief FIB entry implementation with with additional references to the base container
+ */
class EntryImpl : public Entry
{
public:
@@ -60,7 +64,7 @@
};
/**
- * \ingroup ndn
+ * @ingroup ndn-fib
* \brief Class implementing FIB functionality
*/
class FibImpl : public Fib,
diff --git a/model/fib/ndn-fib.h b/model/fib/ndn-fib.h
index 490cdfd..b5e8e40 100644
--- a/model/fib/ndn-fib.h
+++ b/model/fib/ndn-fib.h
@@ -33,8 +33,13 @@
typedef Interest InterestHeader;
/**
- * \ingroup ndn
- * \brief Class implementing FIB functionality
+ * @ingroup ndn
+ * @defgroup ndn-fib FIB
+ */
+
+/**
+ * @ingroup ndn-fib
+ * @brief Class implementing FIB functionality
*/
class Fib : public Object
{
diff --git a/model/fw/best-route.h b/model/fw/best-route.h
index 6648acb..1939a84 100644
--- a/model/fw/best-route.h
+++ b/model/fw/best-route.h
@@ -31,8 +31,8 @@
namespace fw {
/**
- * \ingroup ndn
- * \brief Best route strategy
+ * @ingroup ndn-fw
+ * @brief Best route strategy
*/
class BestRoute :
public GreenYellowRed
diff --git a/model/fw/flooding.h b/model/fw/flooding.h
index f7ce55a..1aa50b0 100644
--- a/model/fw/flooding.h
+++ b/model/fw/flooding.h
@@ -30,10 +30,18 @@
namespace fw {
/**
- * \ingroup ndn
- * \brief Flooding strategy
+ * @ingroup ndn-fw
+ * @brief Simple flooding strategy
*
- * \todo Describe
+ * Interests will be forwarded to all available faces available for a route (FIB entry).
+ * If there are no available GREEN or YELLOW faces, interests is dropped.
+ *
+ * Usage example:
+ * @code
+ * ndnHelper.SetForwardingStrategy ("ns3::ndn::fw::Flooding");
+ * ...
+ * ndnHelper.Install (nodes);
+ * @endcode
*/
class Flooding :
public Nacks
diff --git a/model/fw/green-yellow-red.h b/model/fw/green-yellow-red.h
index 11817bf..57f17dd 100644
--- a/model/fw/green-yellow-red.h
+++ b/model/fw/green-yellow-red.h
@@ -28,7 +28,8 @@
namespace fw {
/**
- * \ingroup ndn
+ * @ingroup ndn-fw
+ * @brief Forwarding strategy extensions to track simple link status based on data plane performance
*/
class GreenYellowRed :
public Nacks
diff --git a/model/fw/nacks.h b/model/fw/nacks.h
index 7855e19..f9f8bb1 100644
--- a/model/fw/nacks.h
+++ b/model/fw/nacks.h
@@ -27,8 +27,8 @@
namespace fw {
/**
- * \ingroup ndn
- * \brief Implementation of experimental NACK messages (enables with EnableNACKs option)
+ * @ingroup ndn-fw
+ * @brief Implementation of experimental NACK messages (enables with EnableNACKs option)
*/
class Nacks :
public ForwardingStrategy
diff --git a/model/fw/ndn-forwarding-strategy.h b/model/fw/ndn-forwarding-strategy.h
index 49b034b..bfed748 100644
--- a/model/fw/ndn-forwarding-strategy.h
+++ b/model/fw/ndn-forwarding-strategy.h
@@ -29,6 +29,19 @@
namespace ns3 {
namespace ndn {
+/**
+ * @ingroup ndn
+ * @defgroup ndn-fw NDN forwarding strategies
+ */
+
+
+/**
+ * @ingroup ndn-fw
+ * @brief Namespace for Forwarding Strategy operations
+ */
+namespace fw {
+}
+
class Face;
class Interest;
@@ -42,8 +55,8 @@
class ContentStore;
/**
- * \ingroup ndn
- * \brief Abstract base class for Ndn forwarding strategies
+ * @ingroup ndn-fw
+ * @brief Abstract base class for Ndn forwarding strategies
*/
class ForwardingStrategy :
public Object
diff --git a/model/fw/ndn-fw-tag.h b/model/fw/ndn-fw-tag.h
index 3407a07..5d02b31 100644
--- a/model/fw/ndn-fw-tag.h
+++ b/model/fw/ndn-fw-tag.h
@@ -27,8 +27,8 @@
namespace fw {
/**
- * \ingroup ndn
- * \brief Abstract class for the forwarding strategy tag, which can be added to PIT entries
+ * @ingroup ndn-fw
+ * @brief Abstract class for the forwarding strategy tag, which can be added to PIT entries
*/
class Tag
{
diff --git a/model/fw/per-fib-limits.h b/model/fw/per-fib-limits.h
index 560432a..89ce352 100644
--- a/model/fw/per-fib-limits.h
+++ b/model/fw/per-fib-limits.h
@@ -38,8 +38,8 @@
namespace fw {
/**
- * \ingroup ndn
- * \brief Strategy implementing per-FIB entry limits
+ * @ingroup ndn-fw
+ * @brief Strategy implementing per-FIB entry limits
*/
template<class Parent>
class PerFibLimits :
diff --git a/model/fw/per-out-face-limits.h b/model/fw/per-out-face-limits.h
index fcdd43f..2f8f662 100644
--- a/model/fw/per-out-face-limits.h
+++ b/model/fw/per-out-face-limits.h
@@ -38,8 +38,8 @@
namespace fw {
/**
- * \ingroup ndn
- * \brief Strategy implementing per-outgoing face limits
+ * @ingroup ndn-fw
+ * @brief Strategy implementing per-outgoing face limits
*/
template<class Parent>
class PerOutFaceLimits :
diff --git a/model/fw/smart-flooding.h b/model/fw/smart-flooding.h
index 9263172..b764de8 100644
--- a/model/fw/smart-flooding.h
+++ b/model/fw/smart-flooding.h
@@ -29,7 +29,8 @@
namespace fw {
/**
- * \ingroup ccnx
+ * @ingroup ndn-fw
+ * @brief Smart flooding forwarding strategy
*/
class SmartFlooding :
public GreenYellowRed
diff --git a/model/ndn-common.h b/model/ndn-common.h
index de21c29..8bfc4f9 100644
--- a/model/ndn-common.h
+++ b/model/ndn-common.h
@@ -19,6 +19,19 @@
#define NDN_NAMESPACE_BEGIN namespace ns3 { namespace ndn {
#define NDN_NAMESPACE_END } /*ndn*/ } /*ns3*/
+/**
+ * @brief NS-3 namespace
+ */
+namespace ns3 {
+
+/**
+ * @brief ndnSIM namespace
+ */
+namespace ndn {
+}
+
+}
+
NDN_NAMESPACE_BEGIN
typedef Time TimeInterval;
diff --git a/model/ndn-content-object.h b/model/ndn-content-object.h
index 58e88a3..859543b 100644
--- a/model/ndn-content-object.h
+++ b/model/ndn-content-object.h
@@ -33,7 +33,7 @@
namespace ndn {
/**
- * @ingroup Ndn
+ * @ingroup ndn
* @brief ContentObject header
*/
class ContentObject : public SimpleRefCount<ContentObject>
@@ -198,7 +198,6 @@
}
/**
- * @ingroup ndn-exceptions
* @brief Class for ContentObject parsing exception
*/
class ContentObjectException {};
diff --git a/model/ndn-global-router.h b/model/ndn-global-router.h
index 1ef6329..dad2180 100644
--- a/model/ndn-global-router.h
+++ b/model/ndn-global-router.h
@@ -40,6 +40,7 @@
typedef Name NameComponents;
/**
+ * @ingroup ndn
* @brief Class representing global router interface for ndnSIM
*/
class GlobalRouter : public Object
diff --git a/model/ndn-interest.h b/model/ndn-interest.h
index 748e2d9..d7ab5df 100644
--- a/model/ndn-interest.h
+++ b/model/ndn-interest.h
@@ -37,8 +37,8 @@
namespace ndn {
/**
+ * @ingroup ndn
* @brief NDN Interest (wire formats are defined in wire)
- *
**/
class Interest : public SimpleRefCount<Interest>
{
@@ -266,7 +266,6 @@
}
/**
- * @ingroup ndn-exceptions
* @brief Class for Interest parsing exception
*/
class InterestException {};
diff --git a/model/pit/ndn-pit-entry-impl.h b/model/pit/ndn-pit-entry-impl.h
index 751402f..f3e8c62 100644
--- a/model/pit/ndn-pit-entry-impl.h
+++ b/model/pit/ndn-pit-entry-impl.h
@@ -28,6 +28,10 @@
namespace pit {
+/**
+ * @ingroup ndn-pit
+ * @brief PIT entry implementation with additional pointers to the underlying container
+ */
template<class Pit>
class EntryImpl : public Entry
{
@@ -89,6 +93,7 @@
typename Pit::super::iterator item_;
};
+/// @cond include_hidden
template<class T>
struct TimestampIndex
{
@@ -98,6 +103,7 @@
return a.GetExpireTime () < b.GetExpireTime ();
}
};
+/// @endcond
} // namespace pit
} // namespace ndn
diff --git a/model/pit/ndn-pit-entry-incoming-face.h b/model/pit/ndn-pit-entry-incoming-face.h
index fb3987e..4597f58 100644
--- a/model/pit/ndn-pit-entry-incoming-face.h
+++ b/model/pit/ndn-pit-entry-incoming-face.h
@@ -31,8 +31,8 @@
namespace pit {
/**
- * \ingroup ndn
- * \brief PIT state component for each incoming interest (not including duplicates)
+ * @ingroup ndn-pit
+ * @brief PIT state component for each incoming interest (not including duplicates)
*/
struct IncomingFace
{
diff --git a/model/pit/ndn-pit-entry-outgoing-face.h b/model/pit/ndn-pit-entry-outgoing-face.h
index 20dfdaf..6b498a8 100644
--- a/model/pit/ndn-pit-entry-outgoing-face.h
+++ b/model/pit/ndn-pit-entry-outgoing-face.h
@@ -31,8 +31,8 @@
namespace pit {
/**
- * \ingroup ndn
- * \brief PIT state component for each outgoing interest
+ * @ingroup ndn-pit
+ * @brief PIT state component for each outgoing interest
*/
struct OutgoingFace
{
diff --git a/model/pit/ndn-pit-entry.h b/model/pit/ndn-pit-entry.h
index 3cb5371..dd90b9f 100644
--- a/model/pit/ndn-pit-entry.h
+++ b/model/pit/ndn-pit-entry.h
@@ -48,43 +48,9 @@
namespace pit {
-/// @cond include_hidden
-class i_face {};
-class i_retx {};
-/// @endcond
-
/**
- * \ingroup ndn
- * \brief Typedef for indexed face container of PitEntryOutgoingFace
- *
- * Indexes:
- * - by face (may be it will be possible to replace with just the std::map)
- */
-// struct OutgoingFaceContainer
-// {
-// /// @cond include_hidden
-// typedef boost::multi_index::multi_index_container<
-// OutgoingFace,
-// boost::multi_index::indexed_by<
-// // For fast access to elements using NdnFace
-// boost::multi_index::ordered_unique<
-// boost::multi_index::tag<i_face>,
-// boost::multi_index::member<OutgoingFace, Ptr<Face>, &OutgoingFace::m_face>
-// >
-// // ,
-// // boost::multi_index::ordered_non_unique<
-// // boost::multi_index::tag<i_retx>,
-// // boost::multi_index::member<OutgoingFace, uint32_t, &OutgoingFace::m_retxCount>
-// // >
-// >
-// > type;
-// /// @endcond
-// };
-
-
-/**
- * \ingroup ndn
- * \brief structure for PIT entry
+ * @ingroup ndn-pit
+ * @brief structure for PIT entry
*
* All set-methods are virtual, in case index rearrangement is necessary in the derived classes
*/
@@ -315,6 +281,7 @@
std::list< boost::shared_ptr<fw::Tag> > m_fwTags; ///< @brief Forwarding strategy tags
};
+/// @cond include_hidden
struct EntryIsNotEmpty
{
bool
@@ -323,6 +290,7 @@
return !entry->GetIncoming ().empty ();
}
};
+/// @endcond
std::ostream& operator<< (std::ostream& os, const Entry &entry);
diff --git a/model/pit/ndn-pit-impl.h b/model/pit/ndn-pit-impl.h
index 26e3a6b..6a8dfcd 100644
--- a/model/pit/ndn-pit-impl.h
+++ b/model/pit/ndn-pit-impl.h
@@ -43,8 +43,8 @@
namespace pit {
/**
- * \ingroup ndn
- * \brief Class implementing Pending Interests Table
+ * @ingroup ndn-pit
+ * @brief Class implementing Pending Interests Table
*/
template<class Policy>
class PitImpl : public Pit
diff --git a/model/pit/ndn-pit.h b/model/pit/ndn-pit.h
index 4c07fd2..0699479 100644
--- a/model/pit/ndn-pit.h
+++ b/model/pit/ndn-pit.h
@@ -30,6 +30,18 @@
namespace ns3 {
namespace ndn {
+/**
+ * @ingroup ndn
+ * @defgroup ndn-pit PIT
+ */
+
+/**
+ * @ingroup ndn-pit
+ * @brief Namespace for PIT operations
+ */
+namespace pit {
+}
+
class L3Protocol;
class Face;
class ContentObject;
@@ -42,8 +54,8 @@
////////////////////////////////////////////////////////////////////////
/**
- * \ingroup ndn
- * \brief Class implementing Pending Interests Table
+ * @ingroup ndn-pit
+ * @brief Class implementing Pending Interests Table
*/
class Pit : public Object
{
diff --git a/model/wire/ccnb.h b/model/wire/ccnb.h
index 893d481..9b920b9 100644
--- a/model/wire/ccnb.h
+++ b/model/wire/ccnb.h
@@ -18,6 +18,10 @@
NDN_NAMESPACE_BEGIN
namespace wire {
+
+/**
+ * @brief Namespace for CCNb wire format operations
+ */
namespace ccnb {
/**
diff --git a/model/wire/ccnb/ccnb-parser/common.h b/model/wire/ccnb/ccnb-parser/common.h
index aa3f68a..531cd87 100644
--- a/model/wire/ccnb/ccnb-parser/common.h
+++ b/model/wire/ccnb/ccnb-parser/common.h
@@ -31,14 +31,6 @@
namespace wire {
-/**
- * \ingroup ndn
- * \defgroup ndn-ccnb CCNB decoding routines
- */
-/**
- * \ingroup ndn-ccnb
- * \brief Namespace for ccnb parer
- */
namespace CcnbParser {
// forward declarations
@@ -54,8 +46,6 @@
/**
* \brief Exception thrown if there is a parsing error
- *
- * \todo inherit this class from some exception class and provide meaningful error messages
*/
class CcnbDecodingException {};
diff --git a/model/wire/ndnsim.h b/model/wire/ndnsim.h
index 186335e..417edba 100644
--- a/model/wire/ndnsim.h
+++ b/model/wire/ndnsim.h
@@ -17,7 +17,14 @@
NDN_NAMESPACE_BEGIN
+/**
+ * @brief Namespace encapsulating wire operations
+ */
namespace wire {
+
+/**
+ * @brief Namespace for ndnSIM wire format operations
+ */
namespace ndnSIM {
/**