decode(bl);
return 0;
}
+
+void MonMap::print_summary(ostream& out)
+{
+ out << "e" << epoch << ": "
+ << mon_inst.size() << " mons at";
+ for (unsigned i = 0; i<mon_inst.size(); i++)
+ out << " " << mon_inst[i].addr;
+}
+
+void MonMap::print(ostream& out)
+{
+ out << "epoch " << epoch << "\n";
+ out << "fsid " << fsid << "\n";
+ out << "last_changed " << last_changed << "\n";
+ for (unsigned i=0; i<mon_inst.size(); i++) {
+ out << "\t" << mon_inst[i] << "\n";
+ }
+}
int write(const char *fn);
int read(const char *fn);
+ void print(ostream& out);
+ void print_summary(ostream& out);
};
inline void encode(MonMap &m, bufferlist &bl) {
m.decode(p);
}
+inline ostream& operator<<(ostream& out, MonMap& m) {
+ m.print_summary(out);
+ return out;
+}
+
#endif
exit(1);
}
-void printmap(const char *me, MonMap *m)
-{
- cout << me << ": monmap: epoch " << m->epoch << std::endl
- << me << ": monmap: fsid " << m->fsid << std::endl;
- for (unsigned i=0; i<m->mon_inst.size(); i++)
- cout << me << ": monmap: " //<< "mon" << i << " "
- << m->mon_inst[i] << std::endl;
-}
-
int main(int argc, const char **argv)
{
vector<const char*> args;
monmap.epoch++;
if (print)
- printmap(me, &monmap);
+ monmap.print(cout);
if (modified) {
// write it out