void TimeLogger::end() { struct timeb time; string strMessage; ftime(&time); char* endtimeline = ctime( &time.time ); *(endtimeline + 20 + 4 ) = 0; *(endtimeline + 19 ) = 0; sprintf(endTimeLineText," %.19s.%.3hu ",&endtimeline[11], time.millitm ); finishTime = getTimeMilli(); startToFinish = finishTime - startTime; pfile = fopen(fileName,"a+"); fprintf(pfile,"-----------------------------------------------------------------------------------------------------------------\n"); if(!stkMessageStack.empty()) { strMessage=stkMessageStack.top(); stkMessageStack.pop(); strMessage+=funcName; } fprintf(pfile,"%-120.120s", strMessage.c_str()); funcName[0]='\0'; hasEnd=true; if(miscArg1[0] != '\0') fprintf(pfile,"%-8.8s", miscArg1); else fprintf(pfile,"%-8.8s", miscArg1); if(miscArg2[0] != '\0') fprintf(pfile,"%-8.8s", miscArg2); else fprintf(pfile,"%-8.8s", miscArg2); fprintf(pfile,"%s %s %8.3Lf\n", startTimeLineText, endTimeLineText, startToFinish); fclose(pfile); };
void TimeLogger::start(char* fName, char* arg1, char* arg2) { miscArg1[0]='\0'; miscArg2[0]='\0'; startTime=0; finishTime=0; memset(startTimeLineText,'\0', sizeof(startTimeLineText)); memset(endTimeLineText,'\0', sizeof(endTimeLineText)); hasEnd=false; stkMessageStack.push(fName); struct timeb currentTime; ftime(¤tTime); char* starttimeline = ctime( ¤tTime.time ); *(starttimeline + 20 + 4 ) = 0; *(starttimeline + 19 ) = 0; sprintf(startTimeLineText," %.19s.%.3hu ",&starttimeline[11], currentTime.millitm ); startTime = getTimeMilli(); //strcpy(funcName, fName); if(arg1 != NULL) strcpy(miscArg1, arg1); if(arg2 != NULL) strcpy(miscArg2, arg2); };
/** returns passed time in microseconds. */ CV_WRAP double getTimeMicro() const { return getTimeMilli()*1e3; }