face-module.cpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
46 #include "face-module.hpp"
47 #include "format-helpers.hpp"
48 
49 namespace nfd {
50 namespace tools {
51 namespace nfdc {
52 
53 void
54 FaceModule::fetchStatus(Controller& controller,
55  const function<void()>& onSuccess,
56  const Controller::DatasetFailCallback& onFailure,
57  const CommandOptions& options)
58 {
59  controller.fetch<ndn::nfd::FaceDataset>(
60  [this, onSuccess] (const std::vector<FaceStatus>& result) {
61  m_status = result;
62  onSuccess();
63  },
64  onFailure, options);
65 }
66 
67 void
68 FaceModule::formatStatusXml(std::ostream& os) const
69 {
70  os << "<faces>";
71  for (const FaceStatus& item : m_status) {
72  this->formatItemXml(os, item);
73  }
74  os << "</faces>";
75 }
76 
77 void
78 FaceModule::formatItemXml(std::ostream& os, const FaceStatus& item) const
79 {
80  os << "<face>";
81 
82  os << "<faceId>" << item.getFaceId() << "</faceId>";
83  os << "<remoteUri>" << xml::Text{item.getRemoteUri()} << "</remoteUri>";
84  os << "<localUri>" << xml::Text{item.getLocalUri()} << "</localUri>";
85 
86  if (item.hasExpirationPeriod()) {
87  os << "<expirationPeriod>" << xml::formatDuration(item.getExpirationPeriod())
88  << "</expirationPeriod>";
89  }
90  os << "<faceScope>" << item.getFaceScope() << "</faceScope>";
91  os << "<facePersistency>" << item.getFacePersistency() << "</facePersistency>";
92  os << "<linkType>" << item.getLinkType() << "</linkType>";
93 
94  os << "<packetCounters>";
95  os << "<incomingPackets>"
96  << "<nInterests>" << item.getNInInterests() << "</nInterests>"
97  << "<nDatas>" << item.getNInDatas() << "</nDatas>"
98  << "<nNacks>" << item.getNInNacks() << "</nNacks>"
99  << "</incomingPackets>";
100  os << "<outgoingPackets>"
101  << "<nInterests>" << item.getNOutInterests() << "</nInterests>"
102  << "<nDatas>" << item.getNOutDatas() << "</nDatas>"
103  << "<nNacks>" << item.getNOutNacks() << "</nNacks>"
104  << "</outgoingPackets>";
105  os << "</packetCounters>";
106 
107  os << "<byteCounters>";
108  os << "<incomingBytes>" << item.getNInBytes() << "</incomingBytes>";
109  os << "<outgoingBytes>" << item.getNOutBytes() << "</outgoingBytes>";
110  os << "</byteCounters>";
111 
112  os << "</face>";
113 }
114 
115 void
116 FaceModule::formatStatusText(std::ostream& os) const
117 {
118  os << "Faces:\n";
119  for (const FaceStatus& item : m_status) {
120  this->formatItemText(os, item);
121  }
122 }
123 
124 void
125 FaceModule::formatItemText(std::ostream& os, const FaceStatus& item) const
126 {
127  os << " faceid=" << item.getFaceId();
128  os << " remote=" << item.getRemoteUri();
129  os << " local=" << item.getLocalUri();
130 
131  if (item.hasExpirationPeriod()) {
132  os << " expires=" << text::formatDuration(item.getExpirationPeriod());
133  }
134 
135  os << " counters={in={"
136  << item.getNInInterests() << "i "
137  << item.getNInDatas() << "d "
138  << item.getNInNacks() << "n "
139  << item.getNInBytes() << "B} ";
140  os << "out={"
141  << item.getNOutInterests() << "i "
142  << item.getNOutDatas() << "d "
143  << item.getNOutNacks() << "n "
144  << item.getNOutBytes() << "B}}";
145 
146  os << " " << item.getFaceScope();
147  os << " " << item.getFacePersistency();
148  os << " " << item.getLinkType();
149  os << "\n";
150 }
151 
152 } // namespace nfdc
153 } // namespace tools
154 } // namespace nfd
virtual void fetchStatus(Controller &controller, const function< void()> &onSuccess, const Controller::DatasetFailCallback &onFailure, const CommandOptions &options) override
collect status from NFD
Definition: face-module.cpp:54
std::string formatDuration(DURATION d)
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents...
Definition: algorithm.hpp:32
void formatItemXml(std::ostream &os, const FaceStatus &item) const
format a single status item as XML
Definition: face-module.cpp:78
std::string formatDuration(DURATION d, bool isLong=false)
void formatItemText(std::ostream &os, const FaceStatus &item) const
format a single status item as text
virtual void formatStatusXml(std::ostream &os) const override
format collected status as XML
Definition: face-module.cpp:68
virtual void formatStatusText(std::ostream &os) const override
format collected status as text