Finish forwarder status information dispaly

- Add channel display
- Add strategy choice display

Change-Id: I4e1923b8a0ed0220150c71a3736f6fd618c30abe
diff --git a/src/status-viewer.cpp b/src/status-viewer.cpp
index 6bc5879..f4f81f4 100644
--- a/src/status-viewer.cpp
+++ b/src/status-viewer.cpp
@@ -31,9 +31,11 @@
   QQmlContext* s_context = s_engine.rootContext();
 
   s_context->setContextProperty("forwarderModel", &s_forwarderStatusModel);
+  s_context->setContextProperty("channelModel", &s_channelModel);
   s_context->setContextProperty("faceModel", &s_faceModel);
   s_context->setContextProperty("fibModel", &s_fibModel);
   s_context->setContextProperty("ribModel", &s_ribModel);
+  s_context->setContextProperty("strategyModel", &s_strategyModel);
   s_context->setContextProperty("statusViewer", this);
 
   s_engine.load((QUrl("qrc:/status.qml")));
@@ -46,6 +48,12 @@
 }
 
 void
+StatusViewer::onChannelStatusRetrieved(const std::vector<nfd::ChannelStatus>& status)
+{
+  emit s_channelModel.onDataReceived(status);
+}
+
+void
 StatusViewer::onFaceStatusRetrieved(const std::vector<nfd::FaceStatus>& status)
 {
   emit s_faceModel.onDataReceived(status);
@@ -64,6 +72,12 @@
 }
 
 void
+StatusViewer::onStrategyChoiceStatusRetrieved(const std::vector<nfd::StrategyChoice>& status)
+{
+  emit s_strategyModel.onDataReceived(status);
+}
+
+void
 StatusViewer::onStatusTimeout()
 {
   std::cerr << "Should not really happen, most likely a serious problem" << std::endl;
@@ -74,13 +88,17 @@
 StatusViewer::requestNfdStatus()
 {
   s_controller->fetch<ndn::nfd::ForwarderGeneralStatusDataset>(bind(&StatusViewer::onStatusRetrieved, this, _1),
-                                                              bind(&StatusViewer::onStatusTimeout, this));
+                                                               bind(&StatusViewer::onStatusTimeout, this));
+  s_controller->fetch<ndn::nfd::ChannelDataset>(bind(&StatusViewer::onChannelStatusRetrieved, this, _1),
+                                                bind(&StatusViewer::onStatusTimeout, this));
   s_controller->fetch<ndn::nfd::FaceDataset>(bind(&StatusViewer::onFaceStatusRetrieved, this, _1),
                                              bind(&StatusViewer::onStatusTimeout, this));
   s_controller->fetch<ndn::nfd::FibDataset>(bind(&StatusViewer::onFibStatusRetrieved, this, _1),
-                                           bind(&StatusViewer::onStatusTimeout, this));
+                                            bind(&StatusViewer::onStatusTimeout, this));
   s_controller->fetch<ndn::nfd::RibDataset>(bind(&StatusViewer::onRibStatusRetrieved, this, _1),
-                                           bind(&StatusViewer::onStatusTimeout, this));
+                                            bind(&StatusViewer::onStatusTimeout, this));
+  s_controller->fetch<ndn::nfd::StrategyChoiceDataset>(bind(&StatusViewer::onStrategyChoiceStatusRetrieved, this, _1),
+                                                       bind(&StatusViewer::onStatusTimeout, this));
   s_scheduler.scheduleEvent(time::seconds(15), bind(&StatusViewer::requestNfdStatus, this));
 }