1ZUUID(3)                          CZMQ Manual                         ZUUID(3)
2
3
4

NAME

6       zuuid - Class for UUID support class
7

SYNOPSIS

9       //  This is a stable class, and may not change except for emergencies. It
10       //  is provided in stable builds.
11       //  Create a new UUID object.
12       CZMQ_EXPORT zuuid_t *
13           zuuid_new (void);
14
15       //  Create UUID object from supplied ZUUID_LEN-octet value.
16       CZMQ_EXPORT zuuid_t *
17           zuuid_new_from (const byte *source);
18
19       //  Destroy a specified UUID object.
20       CZMQ_EXPORT void
21           zuuid_destroy (zuuid_t **self_p);
22
23       //  Set UUID to new supplied ZUUID_LEN-octet value.
24       CZMQ_EXPORT void
25           zuuid_set (zuuid_t *self, const byte *source);
26
27       //  Set UUID to new supplied string value skipping '-' and '{' '}'
28       //  optional delimiters. Return 0 if OK, else returns -1.
29       CZMQ_EXPORT int
30           zuuid_set_str (zuuid_t *self, const char *source);
31
32       //  Return UUID binary data.
33       CZMQ_EXPORT const byte *
34           zuuid_data (zuuid_t *self);
35
36       //  Return UUID binary size
37       CZMQ_EXPORT size_t
38           zuuid_size (zuuid_t *self);
39
40       //  Returns UUID as string
41       CZMQ_EXPORT const char *
42           zuuid_str (zuuid_t *self);
43
44       //  Return UUID in the canonical string format: 8-4-4-4-12, in lower
45       //  case. Caller does not modify or free returned value. See
46       //  http://en.wikipedia.org/wiki/Universally_unique_identifier
47       CZMQ_EXPORT const char *
48           zuuid_str_canonical (zuuid_t *self);
49
50       //  Store UUID blob in target array
51       CZMQ_EXPORT void
52           zuuid_export (zuuid_t *self, byte *target);
53
54       //  Check if UUID is same as supplied value
55       CZMQ_EXPORT bool
56           zuuid_eq (zuuid_t *self, const byte *compare);
57
58       //  Check if UUID is different from supplied value
59       CZMQ_EXPORT bool
60           zuuid_neq (zuuid_t *self, const byte *compare);
61
62       //  Make copy of UUID object; if uuid is null, or memory was exhausted,
63       //  returns null.
64       CZMQ_EXPORT zuuid_t *
65           zuuid_dup (zuuid_t *self);
66
67       //  Self test of this class.
68       CZMQ_EXPORT void
69           zuuid_test (bool verbose);
70
71       Please add '@interface' section in './../src/zuuid.c'.
72

DESCRIPTION

74       The zuuid class generates UUIDs and provides methods for working with
75       them. If you build CZMQ with libuuid, on Unix/Linux, it will use that
76       library. On Windows it will use UuidCreate(). Otherwise it will use a
77       random number generator to produce convincing imitations of UUIDs.
78
79       Please add @discuss section in ./../src/zuuid.c.
80

EXAMPLE

82       From zuuid_test method.
83
84           //  Simple create/destroy test
85           assert (ZUUID_LEN == 16);
86           assert (ZUUID_STR_LEN == 32);
87
88           zuuid_t *uuid = zuuid_new ();
89           assert (uuid);
90           assert (zuuid_size (uuid) == ZUUID_LEN);
91           assert (strlen (zuuid_str (uuid)) == ZUUID_STR_LEN);
92           zuuid_t *copy = zuuid_dup (uuid);
93           assert (streq (zuuid_str (uuid), zuuid_str (copy)));
94
95           //  Check set/set_str/export methods
96           const char *myuuid = "8CB3E9A9649B4BEF8DE225E9C2CEBB38";
97           const char *myuuid2 = "8CB3E9A9-649B-4BEF-8DE2-25E9C2CEBB38";
98           const char *myuuid3 = "{8CB3E9A9-649B-4BEF-8DE2-25E9C2CEBB38}";
99           const char *myuuid4 = "8CB3E9A9649B4BEF8DE225E9C2CEBB3838";
100           int rc = zuuid_set_str (uuid, myuuid);
101           assert (rc == 0);
102           assert (streq (zuuid_str (uuid), myuuid));
103           rc = zuuid_set_str (uuid, myuuid2);
104           assert (rc == 0);
105           assert (streq (zuuid_str (uuid), myuuid));
106           rc = zuuid_set_str (uuid, myuuid3);
107           assert (rc == 0);
108           assert (streq (zuuid_str (uuid), myuuid));
109           rc = zuuid_set_str (uuid, myuuid4);
110           assert (rc == -1);
111           byte copy_uuid [ZUUID_LEN];
112           zuuid_export (uuid, copy_uuid);
113           zuuid_set (uuid, copy_uuid);
114           assert (streq (zuuid_str (uuid), myuuid));
115
116           //  Check the canonical string format
117           assert (streq (zuuid_str_canonical (uuid),
118                          "8cb3e9a9-649b-4bef-8de2-25e9c2cebb38"));
119
120           zuuid_destroy (&uuid);
121           zuuid_destroy (&copy);
122
123           #if defined (__WINDOWS__)
124           zsys_shutdown();
125           #endif
126
127

AUTHORS

129       The czmq manual was written by the authors in the AUTHORS file.
130

RESOURCES

132       Main web site:
133
134       Report bugs to the email <zeromq-dev@lists.zeromq.org[1]>
135
137       Copyright (c) the Contributors as noted in the AUTHORS file. This file
138       is part of CZMQ, the high-level C binding for 0MQ:
139       http://czmq.zeromq.org. This Source Code Form is subject to the terms
140       of the Mozilla Public License, v. 2.0. If a copy of the MPL was not
141       distributed with this file, You can obtain one at
142       http://mozilla.org/MPL/2.0/. LICENSE included with the czmq
143       distribution.
144

NOTES

146        1. zeromq-dev@lists.zeromq.org
147           mailto:zeromq-dev@lists.zeromq.org
148
149
150
151CZMQ 4.2.1                        01/19/2023                          ZUUID(3)
Impressum