class PidFunc;
class Log
{
public:
int SetFilename( string afilename );
int Open();
int Close();
int Process( bool detail, time_t begints, time_t endts );
private:
int ParseLine( string line, int iscan, time_t ts,
int *ppid, int *pltype, PidFunc **pppidfunc );
int StartPidFunc( PidFunc *ppidfunc );
int ComputePidFunc( time_t ts, int pid );
int FinishPidFunc( bool detail, time_t ts, int pid,
PidFunc *pnextpidfunc );
int PrintSummary();
private:
string filename;
ifstream logstream;
FuncNames funcnames;
PidHash pidhash;
AllExtremes maxgcomputes;
AllExtremes mingcomputes;
AllExtremes maxgelapseds;
AllExtremes mingelapseds;
};