rib: Add RIB dataset publisher
refs: #1662
Change-Id: I97885c07af131a7ea78d074b39df884178f09416
diff --git a/rib/rib-manager.hpp b/rib/rib-manager.hpp
index 6566d1f..a19d211 100644
--- a/rib/rib-manager.hpp
+++ b/rib/rib-manager.hpp
@@ -29,6 +29,7 @@
#include "rib.hpp"
#include "face-monitor.hpp"
#include "core/config-file.hpp"
+#include "rib-status-publisher.hpp"
#include <ndn-cxx/security/validator-config.hpp>
#include <ndn-cxx/management/nfd-controller.hpp>
@@ -198,6 +199,9 @@
void
invalidateTransaction(const TransactionId transactionId);
+ void
+ listEntries(const Interest& request);
+
private:
Rib m_managedRib;
ndn::Face& m_face;
@@ -208,6 +212,8 @@
FaceMonitor m_faceMonitor;
bool m_isLocalhopEnabled;
+ RibStatusPublisher m_ribStatusPublisher;
+
/** \brief The last transaction ID for FIB update response messages.
* Each group of FIB updates applied to the FIB is assigned an incrementing
* ID that is used to track the number of successfully applied updates.
@@ -226,14 +232,14 @@
typedef function<void(RibManager*,
const shared_ptr<const Interest>& request,
- ControlParameters& parameters)> VerbProcessor;
+ ControlParameters& parameters)> SignedVerbProcessor;
- typedef std::map<name::Component, VerbProcessor> VerbDispatchTable;
+ typedef std::map<name::Component, SignedVerbProcessor> SignedVerbDispatchTable;
- typedef std::pair<name::Component, VerbProcessor> VerbAndProcessor;
+ typedef std::pair<name::Component, SignedVerbProcessor> SignedVerbAndProcessor;
- const VerbDispatchTable m_verbDispatch;
+ const SignedVerbDispatchTable m_signedVerbDispatch;
static const Name COMMAND_PREFIX; // /localhost/nrd
static const Name REMOTE_COMMAND_PREFIX; // /localhop/nrd
@@ -246,7 +252,17 @@
// 8 with signed Interest support.
static const size_t COMMAND_SIGNED_NCOMPS;
- static const VerbAndProcessor COMMAND_VERBS[];
+ static const SignedVerbAndProcessor SIGNED_COMMAND_VERBS[];
+
+ typedef function<void(RibManager*, const Interest&)> UnsignedVerbProcessor;
+ typedef std::map<Name::Component, UnsignedVerbProcessor> UnsignedVerbDispatchTable;
+ typedef std::pair<Name::Component, UnsignedVerbProcessor> UnsignedVerbAndProcessor;
+
+ const UnsignedVerbDispatchTable m_unsignedVerbDispatch;
+ static const UnsignedVerbAndProcessor UNSIGNED_COMMAND_VERBS[];
+
+ static const Name LIST_COMMAND_PREFIX;
+ static const size_t LIST_COMMAND_NCOMPS;
};
} // namespace rib