Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
ZUUID(3)			   CZMQ Manual				ZUUID(3)

NAME
     zuuid - Class for UUID support class

SYNOPSIS
     //  This is a stable class, and may not change except for emergencies. It
     //  is provided in stable builds.
     //  Create a new UUID object.
     CZMQ_EXPORT zuuid_t *
	 zuuid_new (void);

     //  Create UUID object from supplied ZUUID_LEN-octet value.
     CZMQ_EXPORT zuuid_t *
	 zuuid_new_from (const byte *source);

     //  Destroy a specified UUID object.
     CZMQ_EXPORT void
	 zuuid_destroy (zuuid_t **self_p);

     //  Set UUID to new supplied ZUUID_LEN-octet value.
     CZMQ_EXPORT void
	 zuuid_set (zuuid_t *self, const byte *source);

     //  Set UUID to new supplied string value skipping '-' and '{' '}'
     //  optional delimiters. Return 0 if OK, else returns -1.
     CZMQ_EXPORT int
	 zuuid_set_str (zuuid_t *self, const char *source);

     //  Return UUID binary data.
     CZMQ_EXPORT const byte *
	 zuuid_data (zuuid_t *self);

     //  Return UUID binary size
     CZMQ_EXPORT size_t
	 zuuid_size (zuuid_t *self);

     //  Returns UUID as string
     CZMQ_EXPORT const char *
	 zuuid_str (zuuid_t *self);

     //  Return UUID in the canonical string format: 8-4-4-4-12, in lower
     //  case. Caller does not modify or free returned value. See
     //  http://en.wikipedia.org/wiki/Universally_unique_identifier
     CZMQ_EXPORT const char *
	 zuuid_str_canonical (zuuid_t *self);

     //  Store UUID blob in target array
     CZMQ_EXPORT void
	 zuuid_export (zuuid_t *self, byte *target);

     //  Check if UUID is same as supplied value
     CZMQ_EXPORT bool
	 zuuid_eq (zuuid_t *self, const byte *compare);

     //  Check if UUID is different from supplied value
     CZMQ_EXPORT bool
	 zuuid_neq (zuuid_t *self, const byte *compare);

     //  Make copy of UUID object; if uuid is null, or memory was exhausted,
     //  returns null.
     CZMQ_EXPORT zuuid_t *
	 zuuid_dup (zuuid_t *self);

     //  Self test of this class.
     CZMQ_EXPORT void
	 zuuid_test (bool verbose);

     Please add '@interface' section in './../src/zuuid.c'.

DESCRIPTION
     The zuuid class generates UUIDs and provides methods for working with them.
     If you build CZMQ with libuuid, on Unix/Linux, it will use that library. On
     Windows  it  will	use  UuidCreate(). Otherwise it will use a random number
     generator to produce convincing imitations of UUIDs.

     Please add @discuss section in ./../src/zuuid.c.

EXAMPLE
     From zuuid_test method.

	 //  Simple create/destroy test
	 assert (ZUUID_LEN == 16);
	 assert (ZUUID_STR_LEN == 32);

	 zuuid_t *uuid = zuuid_new ();
	 assert (uuid);
	 assert (zuuid_size (uuid) == ZUUID_LEN);
	 assert (strlen (zuuid_str (uuid)) == ZUUID_STR_LEN);
	 zuuid_t *copy = zuuid_dup (uuid);
	 assert (streq (zuuid_str (uuid), zuuid_str (copy)));

	 //  Check set/set_str/export methods
	 const char *myuuid = "8CB3E9A9649B4BEF8DE225E9C2CEBB38";
	 const char *myuuid2 = "8CB3E9A9-649B-4BEF-8DE2-25E9C2CEBB38";
	 const char *myuuid3 = "{8CB3E9A9-649B-4BEF-8DE2-25E9C2CEBB38}";
	 const char *myuuid4 = "8CB3E9A9649B4BEF8DE225E9C2CEBB3838";
	 int rc = zuuid_set_str (uuid, myuuid);
	 assert (rc == 0);
	 assert (streq (zuuid_str (uuid), myuuid));
	 rc = zuuid_set_str (uuid, myuuid2);
	 assert (rc == 0);
	 assert (streq (zuuid_str (uuid), myuuid));
	 rc = zuuid_set_str (uuid, myuuid3);
	 assert (rc == 0);
	 assert (streq (zuuid_str (uuid), myuuid));
	 rc = zuuid_set_str (uuid, myuuid4);
	 assert (rc == -1);
	 byte copy_uuid [ZUUID_LEN];
	 zuuid_export (uuid, copy_uuid);
	 zuuid_set (uuid, copy_uuid);
	 assert (streq (zuuid_str (uuid), myuuid));

	 //  Check the canonical string format
	 assert (streq (zuuid_str_canonical (uuid),
			"8cb3e9a9-649b-4bef-8de2-25e9c2cebb38"));

	 zuuid_destroy (&uuid);
	 zuuid_destroy (&copy);

	 #if defined (__WINDOWS__)
	 zsys_shutdown();
	 #endif

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

RESOURCES
     Main web site:

     Report bugs to the email <zeromq-dev@lists.zeromq.org[1]>

COPYRIGHT
     Copyright (c) the Contributors as noted in the AUTHORS file. This	file  is
     part  of  CZMQ,  the  high-level C binding for 0MQ: http://czmq.zeromq.org.
     This Source Code Form is subject to the terms of  the  Mozilla  Public  Li-
     cense, v. 2.0. If a copy of the MPL was not distributed with this file, You
     can  obtain  one  at http://mozilla.org/MPL/2.0/. LICENSE included with the
     czmq distribution.

NOTES
      1. zeromq-dev@lists.zeromq.org
	 mailto:zeromq-dev@lists.zeromq.org

CZMQ 4.2.1			   08/27/2026				ZUUID(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zuuid&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help