/*
* Copyright 2001 Perforce Software. All rights reserved.
*
* This file is part of Perforce - the FAST SCM System.
*/
/*
* Rusage -- CPU, etc usage measuring
*
* Rusage is a OS specific object that measures CPU time from its
* creation, for use in reporting on server speed.
*
* Classes:
* Rusage - CPU timer
*
* Public methods:
* Rusage::Start() - restart the timer
* Rusage::Message() - format an OS-specific resource usage message
* Rusage::Time() - return CPU time in ms
*/
class StrBuf;
struct UsageContext;
struct RusageTrack {
int trackable;
P4INT64 utime;
P4INT64 stime;
P4INT64 io_in;
P4INT64 io_out;
P4INT64 net_in;
P4INT64 net_out;
P4INT64 maxrss;
P4INT64 page_faults;
} ;
class Rusage {
public:
Rusage();
~Rusage();
void Start();
void Message( StrBuf &msg );
void GetTrack( int level, RusageTrack *track );
P4INT64 Time();
private:
UsageContext *tc; // OS specific
} ;