Program listing for file numerics/src/tools/NumericsDataVersion.h

Program listing for file numerics/src/tools/NumericsDataVersion.h#

 1#ifndef NumericsDataVersion_h
 2#define NumericsDataVersion_h
 3
 4#include <limits.h>
 5#include <stdint.h>
 6#include <assert.h>
 7
 8typedef uint64_t version_t;
 9
10
11typedef struct
12{
13  version_t number;
14} NumericsDataVersion;
15
16static inline version_t NDV_value(const NumericsDataVersion* v)
17{
18  return v->number;
19}
20
21static inline void NDV_set_value(NumericsDataVersion* v, version_t value)
22{
23  v->number = value;
24}
25
26static inline void NDV_reset(NumericsDataVersion* v)
27{
28  v->number = 0;
29}
30
31static inline void NDV_inc(NumericsDataVersion* v)
32{
33  assert (v->number < UINT64_MAX);
34  v->number += 1;
35}
36
37#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
38extern "C"
39{
40#endif
41
42#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
43}
44#endif
45
46#endif