-/*
- * Copyright (c) 1995-2007, Index Data
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2013 Index Data.
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-/* $Id: timing.h,v 1.1 2007-01-03 13:46:17 adam Exp $ */
/**
* \file timing.h
- * \brief Timing Utilities
+ \brief Timing Utilities
+
*/
#ifndef YAZ_TIMING_H
YAZ_BEGIN_CDECL
+/** \brief YAZ timing handle (opaque type)
+ */
typedef struct yaz_timing *yaz_timing_t;
+/** \brief create timing handle
+ \returns timing handle
+
+ \verbatim
+ yaz_timing_t my = yaz_timing_create();
+ yaz_timing_start(my);
+ do_work();
+ yaz_timing_stop(my);
+
+ printf("real=%g user=%g sys=%g\n",
+ yaz_timing_get_real(my),
+ yaz_timing_get_user(my),
+ yaz_timing_get_sys(my));
+
+ yaz_timing_destroy(my);
+
+ \endverbatim
+ */
YAZ_EXPORT
yaz_timing_t yaz_timing_create(void);
+
+/** \brief start timer
+ \param t timing handle
+ */
YAZ_EXPORT
void yaz_timing_start(yaz_timing_t t);
+
+/** \brief stop timer
+ \param t timing handle
+
+ Use yaz_timing_get_real, yaz_timing_get_user and yaz_timing_get_sys
+ to fetch timing results.
+*/
YAZ_EXPORT
void yaz_timing_stop(yaz_timing_t t);
+
+/** \brief returns real time in seconds
+ \param t timing handle
+ \returns time in seconds
+*/
YAZ_EXPORT
double yaz_timing_get_real(yaz_timing_t t);
+
+/** \brief returns user time in seconds
+ \param t timing handle
+ \returns time in seconds
+*/
YAZ_EXPORT
double yaz_timing_get_user(yaz_timing_t t);
+
+/** \brief returns system time in seconds
+ \param t timing handle
+ \returns time in seconds
+*/
YAZ_EXPORT
double yaz_timing_get_sys(yaz_timing_t t);
+
+/** \brief destroys timing handle
+*/
YAZ_EXPORT
void yaz_timing_destroy(yaz_timing_t *tp);
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab