// $Id$
//
-// Copyright (C) 2008
+// Copyright (C) 2008
// Fraunhofer Institute for Open Communication Systems (FOKUS)
// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
{
namespace fmt = senf::format;
- os << boost::format("%s%-5d%|15t| %12.5g %19.5g %12.5g\n")
- % std::string(2*level,' ') % rank()
+ os << boost::format("%s%-5d%|15t| %12.5g %19.5g %12.5g\n")
+ % std::string(2*level,' ') % rank()
% fmt::eng(min()).setw() % fmt::eng(avg(),dev()).setw() % fmt::eng(max()).setw();
{
OutputMap::const_iterator i (outputs_.begin());
OutputMap::const_iterator i_end (outputs_.end());
for (; i != i_end; ++i)
os << boost::format(" %3d %12.5g %19.5g %12.5g\n")
- % i->second.n
- % fmt::eng(i->second.min).setw()
- % fmt::eng(i->second.avg, i->second.dev).setw()
+ % i->second.n
+ % fmt::eng(i->second.min).setw()
+ % fmt::eng(i->second.avg, i->second.dev).setw()
% fmt::eng(i->second.max).setw();
}
{
#ifndef SENF_DISABLE_CONSOLE
namespace fty = senf::console::factory;
- dir.add("list", fty::Command(this,&Statistics::consoleList)
+ dir.add("list", fty::Command(&Statistics::consoleList, this)
.doc("List statistics collection intervals and current values.\n"
"\n"
"Columns:\n"
" AVG Last entered average value.\n"
" DEV Standard deviation of average value over the collector rank.\n"
" MAX Last entered maximum value.") );
- dir.add("collect", fty::Command(this, &Statistics::consoleCollect)
+ dir.add("collect", fty::Command(&Statistics::consoleCollect, this)
.doc("Add statistics collection groups. The argument gives a sequence of collector\n"
"ranks each building on the preceding collector:\n"
"\n"
"You may call collect multiple times. Any missing collection ranks will be\n"
"added.")
.arg("ranks","chain of collector ranks") );
- dir.add("output", fty::Command(this, &Statistics::consoleOutput)
+ dir.add("output", fty::Command(&Statistics::consoleOutput, this)
.doc("Generate statistics output. This statement will add an additional output\n"
"generator. This generator will be attached to the collector specified by\n"
"the {rank} parameter. This parameter is a chain of successive rank values\n"
for (; i != i_end; ++i)
stats = & (stats->collect(*i));
-
+
}
prefix_ boost::shared_ptr<senf::console::DirectoryNode>
StatisticsBase * stats (this);
std::vector<unsigned>::const_iterator i (ranks.begin());
std::vector<unsigned>::const_iterator const i_end (ranks.end());
-
+
try {
for (; i != i_end; ++i)
stats = &(*stats)[*i];
for (; i != i_end; ++i)
stats = & (stats->collect(*i));
-
+
return stats->output(window).dir().node().thisptr();
}