Remove ancient trunk folder from svn repository
[synfig.git] / ETL / ETL / clock
diff --git a/ETL/ETL/clock b/ETL/ETL/clock
new file mode 100644 (file)
index 0000000..2457b6c
--- /dev/null
@@ -0,0 +1,104 @@
+// <clock> -*- 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 __ETL__CLOCK__
+#define __ETL__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 ourselves 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<ETL_CLOCK_DEFAULT_DESC_CLASS> clock;
+       #ifdef ETL_CLOCK_PROCTIME_DESC_CLASS
+               #define ETL_CLOCK_PROCTIME
+               typedef clock_base<ETL_CLOCK_PROCTIME_DESC_CLASS> clock_proctime;
+       #endif
+       #ifdef ETL_CLOCK_REALTIME_DESC_CLASS
+               #define ETL_CLOCK_REALTIME
+               typedef clock_base<ETL_CLOCK_REALTIME_DESC_CLASS> clock_realtime;
+       #else
+               #warning No realtime clock description found.
+       #endif
+
+#else
+       class clock : public _ETL::clock_base<ETL_CLOCK_DEFAULT_DESC_CLASS> { };
+       #ifdef ETL_CLOCK_PROCTIME_DESC_CLASS
+               #define ETL_CLOCK_PROCTIME
+               class clock_proctime : public _ETL::clock_base<ETL_CLOCK_PROCTIME_DESC_CLASS> { };
+       #endif
+       #ifdef ETL_CLOCK_REALTIME_DESC_CLASS
+               #define ETL_CLOCK_REALTIME
+               class clock_realtime : public _ETL::clock_base<ETL_CLOCK_REALTIME_DESC_CLASS> { };
+       #else
+               #warning No realtime clock description found.
+       #endif
+#endif
+
+_ETL_END_NAMESPACE
+
+//using etl::clock;
+
+/* === E N D =============================================================== */
+
+#endif