counter.h
上传用户:gzpyjq
上传日期:2013-01-31
资源大小:1852k
文件大小:1k
源码类别:

手机WAP编程

开发平台:

WINDOWS

  1. /*
  2.  * gwlib/counter.h - a counter object
  3.  *
  4.  * Kannel has monotonously growing counters in some places, and these need
  5.  * to work even when several threads use them. This header defines the
  6.  * type Counter that provides such a counter. The counter is a long, and
  7.  * if it reaches LONG_MAX, it wraps around to zero (_NOT_ LONG_MIN).
  8.  *
  9.  * Lars Wirzenius.
  10.  *
  11.  * Changed the counter type 'long' into 'unsigned long' so it wraps
  12.  * by itself. Just keep increasing it.
  13.  * Also added a counter_increase_with function.
  14.  * harrie@lisanza.net
  15.  */
  16. #ifndef COUNTER_H
  17. #define COUNTER_H
  18. typedef struct Counter Counter;
  19. /* create a new counter object. PANIC if fails */
  20. Counter *counter_create(void);
  21. /* destroy it */
  22. void counter_destroy(Counter *counter);
  23. /* return the current value of the counter and increase counter by one */
  24. unsigned long counter_increase(Counter *counter);
  25. /* return the current value of the counter and increase counter by value */
  26. unsigned long counter_increase_with(Counter *counter, unsigned long value);
  27. /* return the current value of the counter */
  28. unsigned long counter_value(Counter *counter);
  29. /* return the current value of the counter and decrease counter by one */
  30. unsigned long counter_decrease(Counter *counter);
  31. /* return the current value of the counter and set it to the supplied value */
  32. unsigned long counter_set(Counter *, unsigned long);
  33. #endif