// =====================================================================
//  $Id: TBenchmark.cc,v 1.5 2004/03/07 10:30:34 goiwai Exp $
//  $Name: CLDAQ-1-14-03 $
//  $Log: TBenchmark.cc,v $
//  Revision 1.5  2004/03/07 10:30:34  goiwai
//  ROOTに組みこむためのおまじないマクロを埋めこみました。
//  全てにおいて完全に動作するわけではありません。
//
//  Revision 1.4  2003/10/06 16:38:26  goiwai
//  *** empty log message ***
//
//  Revision 1.3  2003/07/30 18:26:40  goiwai
//  operator<<()の出力がちょっと変更しました.
//
//  Revision 1.2  2003/07/30 16:21:20  goiwai
//  ファイルにコミットログをつけることにしました.
//
// =====================================================================
#include "TBenchmark.hh"

TBenchmark::TBenchmark( const Tstring& unit )
  : theSystemTimer( unit ), theSystemClock(), theStartTime(), theStopTime()
{;}

TBenchmark::~TBenchmark()
{;}

Tvoid TBenchmark::Start()
{
  theSystemTimer.Start();
  theStartTime = theSystemClock.WhatTimeIsItNow();
  return;
}

Tvoid TBenchmark::Pause()
{
  theSystemTimer.Pause();
  theSystemTimer.Lap();
  return;
}

Tvoid TBenchmark::Restart()
{
  theSystemTimer.Restart();
  return;
}

Tvoid TBenchmark::Stop()
{
  theSystemTimer.Stop();
  theStopTime = theSystemClock.WhatTimeIsItNow();
  return;
}

Tvoid TBenchmark::Lap()
{
  theSystemTimer.Lap();
  return;
}

Tvoid TBenchmark::Continue()
{
  theSystemTimer.Lap();
  return;
}

Tvoid TBenchmark::PrintResult()
{
  Tcout << *this << Tendl;
  return;
}

Tostream& operator<<( Tostream& tos, const TBenchmark& right )
{
  tos << "Start: " << right.theStartTime << Tendl;
  tos << "Stop:  " << right.theStopTime << Tendl;
  tos << right.theSystemTimer << Tflush;
  return tos;
}

#ifdef __CLDAQ_ROOT_DLL
    ClassImp(TBenchmark)
#endif
