#ifndef _stopwatch_h_defined_
#define _stopwatch_h_defined_

#include <sys/time.h>
#include <cstdlib>
#include <cstdio>

class stopwatch

  public:

    unsigned elapsed(void)
      if begin.tv_sec < end.tv_sec
	end.tv_sec--
	end.tv_usec += 1000000

      return 
	(end.tv_sec - begin.tv_sec)*1000000 + (end.tv_usec - begin.tv_usec)


    void start(void)
      time(begin)


    void stop(void)
      time(end)


  private:


    struct timeval begin, end


    void time(struct timeval & t)
      if gettimeofday(&t, NULL)
	perror("gettimeofday() failure")
	exit(EXIT_FAILURE)

#endif

// Revision 1.3  2004/03/03 21:55:37  rclayton
// Reduce end.tv_sec to compensate, don't increase it.
//
// Revision 1.2  2003/10/15 15:48:43  rclayton
// Include cstdlib for exit-failure.
//
// Revision 1.1  2002/11/29 21:54:26  rclayton
// Initial revision
//


syntax highlighted by Code2HTML, v. 0.9.1