globus_common
18.5
globus_uuid.h
Go to the documentation of this file.
1
/*
2
* Copyright 1999-2006 University of Chicago
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
27
#ifndef GLOBUS_UUID_H
28
#define GLOBUS_UUID_H
29
30
#include "
globus_common_include.h
"
31
#include "
globus_libc.h
"
32
33
34
#ifdef __cplusplus
35
extern
"C"
{
36
#endif
37
38
#define GLOBUS_UUID_TEXTLEN 36
39
40
#define GLOBUS_UUID_VERSION(uuid) ((uuid).binary.bytes[6] >> 4)
41
#define GLOBUS_UUID_VERSION_TIME 1
42
#define GLOBUS_UUID_VERSION_DCE 2
43
#define GLOBUS_UUID_VERSION_NAME 3
44
#define GLOBUS_UUID_VERSION_RANDOM 4
45
46
#define GLOBUS_UUID_MATCH(u1, u2) \
47
(memcmp((u1).binary.bytes, (u2).binary.bytes, 16) == 0)
48
49
typedef
struct
50
{
51
uint32_t time_low;
52
uint16_t time_mid;
53
uint16_t time_hi_and_version;
54
uint8_t clock_seq_hi_and_reserved;
55
uint8_t clock_seq_low;
56
uint8_t node[6];
57
} globus_uuid_fields_t;
58
59
typedef
struct
60
{
61
union
62
{
63
uint8_t bytes[16];
64
/* all multibyte fields in network byte order */
65
globus_uuid_fields_t fields;
66
} binary;
67
68
char
text[GLOBUS_UUID_TEXTLEN + 1];
69
} globus_uuid_t;
70
77
int
78
globus_uuid_create
(
79
globus_uuid_t * uuid);
80
91
int
92
globus_uuid_import
(
93
globus_uuid_t * uuid,
94
const
char
* str);
95
105
int
106
globus_uuid_fields
(
107
globus_uuid_t * uuid,
108
globus_uuid_fields_t * uuid_fields);
109
110
#ifdef __cplusplus
111
}
112
#endif
113
114
#endif
/* GLOBUS_UUID_H */
globus_libc.h
Thread-safe libc macros, function prototypes.
globus_uuid_import
int globus_uuid_import(globus_uuid_t *uuid, const char *str)
Import a UUID.
Definition:
globus_uuid.c:285
globus_common_include.h
Include System Headers.
globus_uuid_create
int globus_uuid_create(globus_uuid_t *uuid)
Create UUID.
Definition:
globus_uuid.c:217
globus_uuid_fields
int globus_uuid_fields(globus_uuid_t *uuid, globus_uuid_fields_t *uuid_fields)
Extract fields from UUID.
Definition:
globus_uuid.c:344
Generated by
1.8.18