Приложение О
(справочное)
ГОСТ Р ИСО/МЭК 9834-8—2011
Пример реализации
0.1 Описание файлов
Данная реализация состоит из шести файлов: copyrt.h. uuld.h. uuld.c, sysdep.h. sysdep.c и utest.c. Файлы uuld.*
являются системно независимой реализацией алгоритмов генерации УУИд. описанных в разделах 13, 14 и 15. со
всеми оптимизациями, описанными в приложении А (за исключением эффективного состояния, совместно исполь
зуемого процессами). Код подразумевает поддержку 64-битового целого, что делает его более ясным.
П р и м е ч а н и е — Код был протестирован в системах Linux (Red Hat 4.0) с GCC (2.7.2) и Windows
NT 4.0 с VC ♦ ♦5.0.
0.2 Файл copyrt.h
Все последующие исходные файлы должны рассматриваться как имеющие следующее заявление об автор
ских правах:
Г
** Copyright (с) 1990— 1993.1996 Open Software Foundation. Inc. *•
Copyright (c> 1989 by Hewlett-Packard Company. Palo Atto. Ca. & **
Digital Equipment Corporation. Maynard. Mass.
’• Copyright (c) 1998 Microsoft.
** To anyone who acknowledges that this file is provided “AS IS*
*• without any express or implied warranty: permission to use. copy.
** modify, and distnbute this file forany purpose is hereby
" granted without fee. provided that the above copyright notices and
" this notice appears In all source code copies, and that none of
"th e names of Open Software Foundation. Inc.. Hewlett-Packard
" Company, or Digital Equipment Corporation be used In advertising
** or publicity pertaining to distribution of the software without
*’ specific, written prior permission. Neither Open Software
" Foundation. Inc.. Hewlett-Packard Company. Microsoft, nor Digital
" Equipment Corporation makes any representations about the
" suitability
** of this software for any purpose.
V
D.3 Файл uuld.h
//include "copyrt.h"
//undef uuld_t
typedef struct {
unslgned32 tlm ejow;
unsigned16 time_mid.
unsigned16 time_hi_and_verslon;
unsigned8clock_seq_hi_and_reserved;
unsigned8 clock_seqJow;
byte node(6);
)uuid_t;
Г uuid_create -- сгенерировать УУИд V
Int uuid_create(uuld_t * uuid);
Г uuid_create_from_name - создать УУИд. используя “имя"
из "пространства имен* */
void uuid_create_from_name(
Г результирующий УУИд */
/* УУИд пространства имен Ч
Г имя. из которого генерируется УУИд V
/’длина имени*/
uuid_t "uuld.
uuid_t nsid.
void "name,
intnamelen
):
17