#include "ATOOLS/Org/MyTiming.H" #include "ATOOLS/Org/MyStrStream.H" #include "ATOOLS/Org/Message.H" #include #include #include using std::endl; using namespace ATOOLS; namespace ATOOLS { std::string FormatTime(const int &intime,const int mode) { size_t in = (intime<0 ? 0 : intime); int days(in/86400), hrs((in%86400)/3600); int mins(((in%86400)%3600)/60), secs(((in%86400)%3600)%60); std::string out; if (days) out+=ToString(days)+"d "; if (hrs) out+=ToString(hrs)+"h "; if (mins) out+=ToString(mins)+"m "; if (secs) out+=ToString(secs)+"s "; if (out.length()) out.erase(out.length()-1,1); else out="0s"; return out; } } MyTiming::MyTiming() { clk_tck=sysconf(_SC_CLK_TCK); status=3; //never started or stopped } void MyTiming::SetCurrent() { currentclock = times(¤ttms); } void MyTiming::Start() { if (status==1) { } else { status=1; SetCurrent(); startclock=currentclock; starttms=currenttms; } } void MyTiming::Stop() { if ((status==0)||(status==3)) { } else { status=0; SetCurrent(); stopclock=currentclock; stoptms=currenttms; } } void MyTiming::PrintTime() { if (status==3) { } else { if (status==1) SetCurrent(); double clocks=currentclock-startclock; double secs=clocks/clk_tck; msg_Info()<<"Time: "<