X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Ftiming.h;h=d493cf1531ccb3ae86e770255027e28851c10514;hp=0f96357ac9aeb11ebfc0680a1984ed846c1e4280;hb=5ae2f74ba9b27bb7e926d5908471ac79371f7823;hpb=ee6ab2ee3a9ee1a8c65d7272ec7fba1d886f5af0 diff --git a/include/yaz/timing.h b/include/yaz/timing.h index 0f96357..d493cf1 100644 --- a/include/yaz/timing.h +++ b/include/yaz/timing.h @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2008 Index Data. + * 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: @@ -24,11 +24,11 @@ * (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 @@ -38,20 +38,69 @@ 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); @@ -61,6 +110,7 @@ YAZ_END_CDECL /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab