00001 #include "FastShowerUtils/Pinger/ComplexStatsCollector.h" 00002 #include "FastShowerUtils/IDebug.h" 00003 #include "FastShowerUtils/FunctionStats.h" 00004 #include <algorithm> 00005 00006 namespace FastShower{ 00007 IPinger* 00008 ComplexStatsCollector::clone() const { 00009 IPinger* p = new ComplexStatsCollector(*this); 00010 return p; 00011 } 00013 void ComplexStatsCollector::action(const IDebug* d){ 00014 00015 cout<<indent()<<d->text()<< endl; 00016 d->statistics()->report(cout); 00017 IDebug::Cpts parts; 00018 d->components(parts); 00019 ComplexStatsCollector q(*this); 00020 ++(*this); 00021 std::for_each(parts.begin(), parts.end(), PingEach(*this) ); 00022 (*this)=q; 00023 } 00024 } 00025 00026 00027