NdbTick.h
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #ifndef NDB_TICK_H
  14. #define NDB_TICK_H
  15. #include <ndb_types.h>
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. #if defined NDB_OSE || defined NDB_SOFTOSE
  20. typedef unsigned long NDB_TICKS;
  21. #else
  22. typedef Uint64 NDB_TICKS; 
  23. #endif
  24. /**
  25.  * Returns the current millisecond since 1970
  26.  */
  27. NDB_TICKS NdbTick_CurrentMillisecond(void);
  28. /**
  29.  * Get current micro second
  30.  * Second method is simply abstraction on top of the first
  31.  * 
  32.  * Returns 0 - Success
  33.  */
  34. int NdbTick_CurrentMicrosecond(NDB_TICKS * secs, Uint32 * micros);
  35.   /*#define TIME_MEASUREMENT*/
  36. #ifdef TIME_MEASUREMENT
  37. struct MicroSecondTimer {
  38.   NDB_TICKS seconds;
  39.   NDB_TICKS micro_seconds;
  40. };
  41. /**
  42.  * Get time between start and stop time in microseconds
  43.  * Abstraction to get time in struct
  44.  *
  45.  * 0 means stop happened at or before start time
  46.  */
  47. NDB_TICKS NdbTick_getMicrosPassed(struct MicroSecondTimer start,
  48.                             struct MicroSecondTimer stop);
  49. int NdbTick_getMicroTimer(struct MicroSecondTimer* time_now);
  50. #endif
  51. #ifdef __cplusplus
  52. }
  53. #endif
  54. #endif