GCS
0.2.3
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
src
gu_uuid.h
1
/*
2
* Copyright (C) 2008 Codership Oy <info@codership.com>
3
*
4
* $Id: gu_uuid.h 3056 2013-04-19 20:31:05Z alex $
5
*/
6
/*
7
* Universally Unique IDentifier. RFC 4122.
8
* Time-based implementation.
9
*
10
*/
11
12
#ifndef _gu_uuid_h_
13
#define _gu_uuid_h_
14
15
#include "gu_types.h"
16
17
#ifdef __cplusplus
18
extern
"C"
{
19
#endif
20
23
#define GU_UUID_LEN 16
24
typedef
struct
{
25
uint8_t data[GU_UUID_LEN];
26
}
gu_uuid_t
;
27
28
extern
const
gu_uuid_t
GU_UUID_NIL;
29
31
#define GU_UUID_STR_LEN 36
32
34
#define GU_UUID_FORMAT \
35
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x"
36
37
#define GU_UUID_ARGS(uuid) \
38
(uuid)->data[ 0], (uuid)->data[ 1], (uuid)->data[ 2], (uuid)->data[ 3],\
39
(uuid)->data[ 4], (uuid)->data[ 5], (uuid)->data[ 6], (uuid)->data[ 7],\
40
(uuid)->data[ 8], (uuid)->data[ 9], (uuid)->data[10], (uuid)->data[11],\
41
(uuid)->data[12], (uuid)->data[13], (uuid)->data[14], (uuid)->data[15]
42
43
/* this is used for scanf, variables are by reference */
44
#define GU_UUID_FORMAT_SCANF \
45
"%02hhx%02hhx%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx"
46
47
#define GU_UUID_ARGS_SCANF(uuid) \
48
&(uuid)->data[ 0], &(uuid)->data[ 1], &(uuid)->data[ 2], &(uuid)->data[ 3],\
49
&(uuid)->data[ 4], &(uuid)->data[ 5], &(uuid)->data[ 6], &(uuid)->data[ 7],\
50
&(uuid)->data[ 8], &(uuid)->data[ 9], &(uuid)->data[10], &(uuid)->data[11],\
51
&(uuid)->data[12], &(uuid)->data[13], &(uuid)->data[14], &(uuid)->data[15]
52
64
extern
void
65
gu_uuid_generate (
gu_uuid_t
* uuid,
66
const
void
* node,
67
size_t
node_len);
68
73
extern
long
74
gu_uuid_compare (
const
gu_uuid_t
* left,
75
const
gu_uuid_t
* right);
76
81
extern
long
82
gu_uuid_older (
const
gu_uuid_t
* left,
83
const
gu_uuid_t
* right);
84
89
extern
ssize_t
90
gu_uuid_print(
const
gu_uuid_t
* uuid,
char
* buf,
size_t
buflen);
91
96
extern
ssize_t
97
gu_uuid_scan(
const
char
* buf,
size_t
buflen,
gu_uuid_t
* uuid);
98
99
#ifdef __cplusplus
100
}
101
#endif
/* __cplusplus */
102
103
#endif
/* _gu_uuid_h_ */
gu_uuid_t
Definition:
gu_uuid.h:24
Generated on Tue Sep 16 2014 09:07:35 for GCS by
1.8.7