// -*- C++ -*- /*! ======================================================================== ** Extended Template and Library ** Clock Abstraction ** $Id$ ** ** Copyright (c) 2002 Robert B. Quattlebaum Jr. ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as ** published by the Free Software Foundation; either version 2 of ** the License, or (at your option) any later version. ** ** This package is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ** General Public License for more details. ** ** === N O T E S =========================================================== ** ** ========================================================================= */ /* === S T A R T =========================================================== */ #ifndef __CLOCK__ #define __CLOCK__ /* === H E A D E R S ======================================================= */ #include "etl_config.h" #ifdef HAVE_GETTIMEOFDAY #include "_clock_gettimeofday.h" #ifndef ETL_CLOCK_DEFAULT_DESC_CLASS #define ETL_CLOCK_DEFAULT_DESC_CLASS _ETL::clock_desc_gettimeofday #endif #ifndef ETL_CLOCK_REALTIME_DESC_CLASS #define ETL_CLOCK_REALTIME_DESC_CLASS _ETL::clock_desc_gettimeofday #endif #endif #ifdef _WIN32 #include "_clock_win32hpcount.h" #ifndef ETL_CLOCK_DEFAULT_DESC_CLASS #define ETL_CLOCK_DEFAULT_DESC_CLASS _ETL::clock_desc_win32hpcount #endif #ifndef ETL_CLOCK_REALTIME_DESC_CLASS #define ETL_CLOCK_REALTIME_DESC_CLASS _ETL::clock_desc_win32hpcount #endif #endif // If we could not find outselves a better // clock description, go ahead and use the // standard clock() implementation. // (Better than nothing...) #include "_clock_system.h" #ifndef ETL_CLOCK_DEFAULT_DESC_CLASS #define ETL_CLOCK_DEFAULT_DESC_CLASS _ETL::clock_desc_sys_clock #endif #ifndef ETL_CLOCK_PROCTIME_DESC_CLASS #define ETL_CLOCK_PROCTIME_DESC_CLASS _ETL::clock_desc_sys_clock #endif #ifndef ETL_CLOCK_REALTIME_DESC_CLASS #define ETL_CLOCK_REALTIME_DESC_CLASS _ETL::clock_desc_sys_time #endif #include "_clock_base.h" _ETL_BEGIN_NAMESPACE #if 0 typedef _ETL::clock_base clock; #ifdef ETL_CLOCK_PROCTIME_DESC_CLASS #define ETL_CLOCK_PROCTIME typedef clock_base clock_proctime; #endif #ifdef ETL_CLOCK_REALTIME_DESC_CLASS #define ETL_CLOCK_REALTIME typedef clock_base clock_realtime; #else #warning No realtime clock description found. #endif #else class clock : public _ETL::clock_base { }; #ifdef ETL_CLOCK_PROCTIME_DESC_CLASS #define ETL_CLOCK_PROCTIME class clock_proctime : public _ETL::clock_base { }; #endif #ifdef ETL_CLOCK_REALTIME_DESC_CLASS #define ETL_CLOCK_REALTIME class clock_realtime : public _ETL::clock_base { }; #else #warning No realtime clock description found. #endif #endif _ETL_END_NAMESPACE //using etl::clock; /* === E N D =============================================================== */ #endif